リンク先で紹介されていたコードで、概ね問題ありませんが、カスタム投稿タイプの場合は、アクション、フィルター名が以下のようになります。※ {$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' );
の部分は、カスタムフィールドでのソートを行う場合に必要となるものですので、今回は必要ありません。
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’ );
お忙しいところお手数をおかけしますが、引き続きお知恵をお貸しいただけないでしょうか。
どうぞよろしくおねがいします。