我正在为WordPress客户创建一个后端界面。我想链接到“添加新(页面)”,并预先选择一个特定的自定义页面模板,这样他们就不需要从下拉列表中选择一个。这可能吗?
答案 0 :(得分:1)
我在这里看到两个选项:
admin_head
添加操作,您可以在其中注入一些javascript来更改页面模板下拉列表的默认值。向save_post
(documentation)添加操作,并让您的函数更新正在保存的帖子的_wp_page_template
元值。像这样:
add_action( 'save_post', 'my_default_template' );
function my_default_template( $post_id ) {
//verify post is not a revision
if ( !wp_is_post_revision( $post_id ) ) {
update_post_meta($post_id, '_wp_page_template', 'your-page-template.php');
}
}
方法2的缺点是在下拉列表中显示正确的模板之前必须保存页面一次。在设置之前,您可能还需要检查用户是否实际选择了自定义值。
答案 1 :(得分:0)
签到:wp-admin / edit-form-advanced.php 有:
add_meta_box('pageparentdiv', 'page' == $post_type ? __('Page Attributes') : __('Attributes'), 'page_attributes_meta_box', $post_type, 'side', 'core');
如果您以任何方式删除此元数据并将其替换为您自己的元数据,您的回调函数会修改传递的param $ post(设置所需模板)然后调用原始的meatbox回调(例如post_thumbnail_meta_box()函数)传递修改后的$后param。 我想如果你添加自己的' add_meta_boxes'动作(在下面几行中称为),您将能够替换那里的原始元数据。