サポート » 使い方全般 » カスタム投稿タイプの管理画面にソートできる更新日を表示するには?

  • conte9999

    (@conte9999)


    いつもお世話になっております。

    CPT UI でカスタム投稿タイプを作成したのですが
    管理画面のカスタム投稿タイプ投稿一覧に「最新の更新日」を表示させ
    ついでにソートもさせたいと思っております。

    いろいろと探してみて

    https://ja.forums.wordpress.org/topic/36505?replies=2
    ↑ ↑ ↑
    こちらのトピックを見つけて試してみたのですが、
    カスタム投稿タイプには完全に対応しておらず、
    上記で紹介されていたコードをfunction.phpに実装すると、
    サイトそのものが表示されなくなってしまいました。

    カスタム投稿タイプの管理画面 投稿一覧で最新の更新日を表示するには
    どのようにすればよいかご教授いただけませんでしょうか。
    どうぞよろしくおねがいします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター jim912

    (@jim912)

    リンク先で紹介されていたコードで、概ね問題ありませんが、カスタム投稿タイプの場合は、アクション、フィルター名が以下のようになります。※ {$post_type} の部分は、定義したカスタム投稿タイプのPost Type Slug

    manage_{$post_type}_posts_columns
    manage_{$post_type}_posts_custom_column
    manage_edit-{$post_type}_sortable_columns

    サイトそのものが表示されなくなったのは、コードを記述された箇所が適切ではないなどが考えられますので、見直してみてください。原因がわからなければ、デバッグモードを有効にして、発生しているエラー内容を確認してみてください。

    なお、実害はありませんが、紹介されたコードのうち、my_posts_orderby_columns 関数の定義部分、および

    // sort request
    add_filter( 'request', 'my_posts_orderby_columns' );

    の部分は、カスタムフィールドでのソートを行う場合に必要となるものですので、今回は必要ありません。

    conte9999

    (@conte9999)

    jim912様

    ありがとうございます。
    jim912様のご指導のとおりにやってみたらカスタム投稿タイプに更新日時が表示されました。
    それに設置場所を気をつけてみたらエラーもでませんでした!

    しかしながら、公開日のようにソートする機能はやはり実装できませんでした。

    下記のように記述したのですがソート機能もつけるにはどのような記述をすると良いでしょうか。

    if ( ! function_exists( ‘my_posts_columns’ ) AND ! function_exists( ‘my_postos_custom_column’ ) AND ! function_exists( ‘my_posts_orderby_columns’ ) AND ! function_exists( ‘my_posts_sortable_columns’ ) ) {
    // add columns
    function my_posts_columns( $defaults ) {
    $defaults[‘post_modified’] = __( ‘Last updated’ );
    return $defaults;
    }
    function my_postos_custom_column( $column_name, $id ) {
    if( $column_name === ‘post_modified’ ){
    echo get_the_modified_date( ‘Y年m月d日’ );
    }
    }
    // sort
    // Source : http://hijiriworld.com/web/wordpress-admin-customize/#list
    function my_posts_orderby_columns( $vars ) {
    if ( isset($vars[‘orderby’]) && ‘modified’ == $vars[‘orderby’] ) {
    $vars = array_merge($vars, array(
    ‘meta_key’ => ‘modified’,
    ‘orderby’ => ‘meta_value’
    ));
    }
    return $vars;
    }
    function my_posts_sortable_columns( $sortable_column ) {
    $sortable_column[‘post_modified’] = ‘post_modified’;
    return $sortable_column;
    }
    // Post
    add_filter( ‘manage_カスタム投稿タイプ名_posts_columns’, ‘my_posts_columns’ );
    add_action( ‘manage_カスタム投稿タイプ名_posts_custom_column’, ‘my_postos_custom_column’, 10, 2 );
    add_filter( ‘manage_edit-カスタム投稿タイプ名_post_sortable_columns’, ‘my_posts_sortable_columns’ );

    お忙しいところお手数をおかけしますが、引き続きお知恵をお貸しいただけないでしょうか。

    どうぞよろしくおねがいします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カスタム投稿タイプの管理画面にソートできる更新日を表示するには?」には新たに返信することはできません。