WP管理パネルには、「親」ドロップダウンリストのある「属性」メタボックスがあります。並べ替えパラメータを変更して、親の投稿のみを表示する必要があります。ネイティブWPファイルmeta-boxes.phpの621行目を変更すればそれができるかもしれません。次のコード:
$dropdown_args = array(
'post_type' => $post->post_type,
'exclude_tree' => $post->ID,
'selected' => $post->post_parent,
'name' => 'parent_id',
'show_option_none' => __('(no parent)'),
//Remove existing sort
//'sort_column' => 'menu_order, post_title',
'echo' => 0,
//Add my options
'parent' => 0,
'sort_order' => 'DESC',
'sort_column' => 'post_date',
);
これを使用すると、すべて完璧に機能します。しかし、私はそれをフックする必要があります。私はそれを行うためにactiontを作成しましたが、機能しません:
add_action('page_attributes_meta_box', 'custome_page_attributes_meta_box');
function custome_page_attributes_meta_box($post) {
$post_type_object = get_post_type_object($post->post_type);
if ( $post_type_object->hierarchical ) {
$dropdown_args = array(
'post_type' => $post->post_type,
'exclude_tree' => $post->ID,
'selected' => $post->post_parent,
'name' => 'parent_id',
'show_option_none' => '(no parent)',
'echo' => 0,
'sort_order' => 'DESC',
'sort_column' => 'post_date',
'parent' => 0
);
$dropdown_args = apply_filters( 'page_attributes_dropdown_pages_args', $dropdown_args, $post );
$pages = wp_dropdown_pages( $dropdown_args );
if ( ! empty($pages) ) {
?>
<p><strong><?php _e('Parent') ?></strong></p>
<label class="screen-reader-text" for="parent_id"><?php _e('Parent') ?></label>
<?php echo $pages; ?>
<?php
} // end empty pages check
} // end hierarchical check.
}
私が間違っていることは何ですか?