我有一个Wordpress电子商务插件提供给我的自定义帖子类型“product”,该插件不提供在页面属性元框中更改页面父级的选项。我想补救一下。
我发现this post 在Wordpress StackExchange上,但它专门处理页面属性元框的页面模板元素。有人能根据WSE的另一个问题中提供的非常好的答案推断出适合我的目的吗?它甚至可以包括所有页面属性元框选项。它不必拆分为页面父级。但我需要的是Page Parent。
编辑#2:这是我到目前为止的资料。metabox会显示相应的下拉列表,但我无法保存parent\\u id。它似乎是admin/post。php页面未捕获$\\u POST[\'parent\\u id\']变量。Wordpress是否有一些功能不允许非层次化自定义帖子类型具有父ID?还是我应该在Woocommerce代码中查找?
function product_attributes_meta_box($post) {
$dropdown_args = array(
\'post_type\' => \'page\',
\'exclude_tree\' => $post->ID,
\'selected\' => $post->post_parent,
\'name\' => \'parent_id\',
\'show_option_none\' => __(\'(no parent)\'),
\'sort_column\' => \'menu_order, post_title\',
\'echo\' => 0,
\'child_of\' => 282, // Sales Page
);
$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
}
add_action(\'add_meta_boxes\',\'add_post_template_metabox\');
function add_post_template_metabox() {
add_meta_box(\'postparentdiv\', __(\'Page Parent\'), \'product_attributes_meta_box\', \'product\', \'side\', \'core\');
}
add_action(\'save_post\',\'save_post_parent\',10,2);
function save_post_parent($post_id,$post) {
if ($post->post_type==\'product\' && !empty($_POST[\'parent_id\'])
) {
update_post_meta($post->ID,\'_parent_id\',$_POST[\'parent_id\']);
}
}
编辑3:我将自定义帖子类型“product”更改为hierarchical => true
但是邮报。php页面仍然没有捕获$\\u POST[\'parent\\u id\']变量。我也试着发表评论remove_meta_box( \'pageparentdiv\', \'product\', \'side\' );
在woocommerce。php文件并删除上面所有的自定义代码,但父页面仍没有保存。