我发现这个问题很有趣,所以下面是我为实现这一点所做的工作。
获取页面模板并将其添加为Post类型页面的子菜单。
function addTemplateAddNewSubMenu() {
global $submenu;
// here we are fetching all page template from current activated theme.
$templates = wp_get_theme()->get_page_templates( \'page\' );
foreach ( $templates as $filename => $title ) {
if ( $filename != \'default\' && $filename != \'\' ) {
// add page-template filename as query string to add new page link.
$url = \'post-new.php?post_type=page&template=\' . $filename;
$submenu[\'edit.php?post_type=page\'][] = array( \'Add new \' . $title , \'manage_options\', $url );
}
}
}
add_action( \'admin_menu\', \'addTemplateAddNewSubMenu\' );
我已将页面模板作为查询字符串添加到
/wp-admin/post-new.php?post_type=page&template=template-contact.php
通过jQuery和模板查询字符串选择页面模板下拉列表。
add_action( \'admin_head\',\'selectPageTemplate\' );
function selectPageTemplate() {
global $pagenow;
if ( $pagenow == \'post-new.php\' ) {
if ( get_post_type() == \'page\' && isset($_GET[\'template\']) ) {
$template = $_GET[\'template\']; ?>
<script>
jQuery(function($){
$(\'#page_template\').val(\'<?php echo $template;?>\');
});
</script>
<?php
}
}
}