我有一些自定义模板,它们被分配到我的管理中的不同页面。
是否可以隐藏/锁定特定页面的模板下拉列表?例如,我有一个Events Calendar
模板,该模板将仅分配给事件日历页,因此客户端无需在下拉框中看到该模板,但管理员仍应可以访问该模板。
感谢您的帮助或指导。
我有一些自定义模板,它们被分配到我的管理中的不同页面。
是否可以隐藏/锁定特定页面的模板下拉列表?例如,我有一个Events Calendar
模板,该模板将仅分配给事件日历页,因此客户端无需在下拉框中看到该模板,但管理员仍应可以访问该模板。
感谢您的帮助或指导。
~/wp-admin/edit-form-advanced.php
. 你需要的那个\'dbx_post_advanced\'
. 您只需使用remove_meta_box()
.<?php
defined( \'ABSPATH\' ) or exit;
/** Plugin Name: (#90253) Remove Page Template Drop Down */
add_action( \'dbx_post_advanced\', \'wpse90235_remove_page_template_metabox\' );
function wpse90235_remove_page_template_metabox()
{
remove_meta_box( \'pageparentdiv\', null, \'side\' );
}
这是唯一的机会。page_attributes_meta_box()
生成元框的回调使用wp_dropdown_pages()
并通过名为\'page_attributes_dropdown_pages_args\'
它有两个参数:$dropdown_args
和$post
. 当你看这些论点时,你会发现echo
参数设置为0/false
, 它不应该输出任何东西。$dropdown_args = array(
\'post_type\' => $post->post_type,
\'exclude_tree\' => $post->ID,
\'selected\' => $post->post_parent,
\'name\' => \'parent_id\',
\'show_option_none\' => __(\'(no parent)\'),
\'sort_column\' => \'menu_order, post_title\',
\'echo\' => 0,
);
。。。可悲的是echo
之后立即强制:<?php echo $pages; ?>
需要考虑的一件事是:如果命名模板文件page-{$page_slug}.php
或page-{$ID}.php
(匹配管理界面/区域/后端中的页面),然后它将加载该模板,而不会在下拉列表中显示为“页面模板”。
请参见Template Hierarchy Diagram 在法典中。
是否可以为自定义帖子类型设置模板?例如,您有一个具有4种不同布局变体的公文包页面,您希望用户能够选择此帖子/页面所需的布局?想知道你们这些好人有没有办法?谢谢:)