是否将模板添加到帖子和页面的页面属性面板?

时间:2010-09-09 作者:Scott B

我希望将我的主主题保留为活动主题,但允许用户通过“页面/帖子属性”面板选择略有不同的布局。理想情况下,我希望将此布局存储在主主题的“styles”目录下的自己的文件夹中。

MyTheme>styles>My special Layout>style。css

因此,在“页面属性”面板中,我看到一个名为“我的特殊布局”的模板。。。

然而,我有两个问题。。。

我似乎无法在“页面属性”面板中显示“子”主题。(我只是在我的主主题目录下添加一个文件夹,然后放置一个style.css 该文件具有值“Template: my_main_theme_directory),但我从未在“页面属性”面板中看到任何模板。

我无法在帖子编辑器上找到“页面属性”面板。我想允许将模板应用于帖子以及页面。如何在post editor上获取此面板?

2 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

你没有把儿童主题做对。子主题是一个单独的主题,每个人都必须使用,但它不提供的所有模板部分都依赖于另一个主题。您需要的是模板:

http://codex.wordpress.org/Theme_Development#Defining_Custom_Templates

基本上,只需在主题的根目录中创建一个新的主题文件(例如。foobar.php) 在顶部写下:

/*
Template Name: Foobar
*/
这将为您提供一个名为Foobar的新模板(显然,可以将Foobar更改为您想要的任何名称。这是将出现在编辑器页面下拉菜单中的名称)。

到目前为止,WordPress只支持页面模板和自定义帖子类型,不支持帖子。有很多方法可以解决这个问题,比如在帖子上检查帖子元并将其拉到模板上,包括:

function my_post_templater($template){
  if( !is_single() )
    return $template;
  global $wp_query;
  $c_template = get_post_meta( $wp_query->post->ID, \'_wp_page_template\', true );
  return empty( $c_template ) ? $template : $c_template;
}

add_filter( \'template_include\', \'my_post_templater\' );

function give_my_posts_templates(){
  add_post_type_support( \'post\', \'page-attributes\' );
}

add_action( \'init\', \'give_my_posts_templates\' );
如果你把代码放在你的主题里functions.php 文件,这应该可以工作(只要您的主题文件夹中确实有自定义模板)。

有关子主题的更多信息,请阅读此处:

http://codex.wordpress.org/Child_Themes

SO网友:Vyshnav MK

从wordpress 4.7+中,您可以在自定义模板文件中放置“模板帖子类型”,以在页面和帖子的页面属性中显示它。

/*
  Template Name: Your Template Name
  Template Post Type: post, page
*/

结束

相关推荐

Adding goodies to themes

如何在主题更新时向Arjuna-X等主题添加内容而不丢失?儿童主题是一种很好的方式,还是有其他选择?如果新版本的主题对我添加的功能具有本机支持,该怎么办?