WordPressで投稿に「階層」設定したら結構面倒なことになった。
作成日:
2018年12月29日
WordPressで通常の投稿に固定ページ同様に「階層」を設定しましたら、色々と面倒なことになりました。
①ラベル表示が「固定ページ」になった。
編集画面の「投稿の編集」などの表記ラベルが「固定ページの編集」と変わってしまいました。
解決策
PHP functions.php
function post_add_options( $args, $post_type ) {
if ( 'post' === $post_type ) {
$post_labels = array(
'name' => '投稿',
'singular_name' => '投稿',
'menu_name' => '投稿',
'name_admin_bar' => '投稿',
'add_new' => '新規追加',
'add_new_item' => '新規投稿を追加',
'new_item' => '新規投稿',
'edit_item' => '投稿の編集',
'view_item' => '投稿の表示',
'all_items' => 'すべての投稿',
'search_items' => '投稿の検索',
'not_found' => '投稿が見つかりませんでした。',
'not_found_in_trash' => 'ゴミ箱に投稿が見つかりませんでした。',
'attributes' => '投稿の属性',
);
$args['labels'] = $post_labels;
$args['hierarchical'] = true;
add_post_type_support( 'post', 'page-attributes' );
}
return $args;
}
add_filter( 'register_post_type_args', 'post_add_options', 10, 2 );
②親ページを選択する際に投稿数が多すぎて選択出来ない。
固定ページは、もし最大に作成しても100ページ未満でしょうが、投稿の場合、軽く1,000を超えてしまいます。そうすると、親ページを選択するドロップダウンで全件の中から選択することが出来なくなります。
解決策
PHP
function modify_parent_dropdown_args( $args ) {
global $post_type_object;
if ( 'post' === $post_type_object->name ) {
$args['meta_key'] = 'has_parent';
$args['meta_value'] = 1;
}
return $args;
}
add_filter( 'page_attributes_dropdown_pages_args', 'modify_parent_dropdown_args', 10, 2 );
add_filter( 'quick_edit_dropdown_pages_args', 'modify_parent_dropdown_args' );
③投稿一覧画面の並び順がタイトル順に
投稿に階層を設定すると、投稿一覧画面の並び順が固定ページ同様にタイトル順に変わってしまいます。カラムの「日付」をクリックすれば日付順になるのですが、これも元に戻したい。
解決策
PHP
function admin_post_order( $query ) {
$post_type = $query->get( 'post_type' );
if ( 'post' === $post_type ) {
$query->set( 'orderby', 'date' );
$query->set( 'order', 'DESC' );
}
}
if ( is_admin() ) {
add_action( 'pre_get_posts', 'admin_post_order' );
}
Set Default Order of CPTs in WordPress Admin | NJE Design
http://www.njedesign.com/default-order-custom-post-types-admin/
WordPress管理でカスタム投稿タイプのデフォルトの順序を変更します。順序をタイトル順にし、順序を設定するためにタイトルをクリックする必要はありません。
師走だ。
師走だ。
師走だ。
物草 灸太郎
WordPressでホームページを制作しつつ、休日は畑を耕したりDIYを楽しんでいます。
関連投稿
Loading...
コメントをどうぞ