将页面用作自定义帖子类型的模板

时间:2017-05-11 作者:Gijs

我正在尝试开发一个带有自定义post类型的插件,可以在不同的主题中使用,这就是为什么要创建一个单post\\u类型。php模板文件是不可能的。自定义帖子类型有很多元字段,我想使用占位符放置这些字段。

此时,插件会查找默认页面。当前主题中的php模板。但通常模板都有额外的设置来设计我无法使用的页面,因为每个主题都以不同的方式工作。

我的想法是使用现有(未发布)页面作为自定义帖子类型的模板。通过向页面添加短代码(占位符),这些短代码将被自定义帖子类型的内容替换。我怎样才能做到这一点。

示例:

post:       Template
post type:  page
url:        --not published--
content:    <h1>[placeholder field="title"]</h1>
            <p>Genre: [placeholder field="genre"]</p>

post:       Terminator 2
post type:  movie
meta genre: action
meta actor: Arnold
url:        site.com/movie/terminator-2/
content:    <h1>Terminator 2</h1>
            <p>Genre: action</p>
我知道如何使用占位符,但如何使用模板页面作为模板,以便使用所用主题的所有功能。

<小时>Edit: 尝试解决方案:我添加了重写规则

global $wp,$wp_rewrite;
$wp->add_query_var(\'movieslug\');
$wp_rewrite->add_rule(\'(.*)movie/([^/]+)\', \'index.php?pagename=movie-template&movieslug=$matches[2]\', \'top\');
这似乎可行,我使用filter the\\u title来更改标题,但这不会更改<title> 标签,这并不是一个真正的解决方案,任何想法都是受欢迎的。

1 个回复
SO网友:joetek

如果您正在考虑使用带有短代码的页面,那么听起来您实际上只是为帖子的实际内容创建了一个自定义布局,而不是更改整个布局。

如果是这样,您可以只筛选“the\\u content”,并将自定义字段输出到该内容中。WordPress将默认使用标准单键。php,如果没有指定自定义帖子类型模板,但您的字段将显示为页面内容部分的一部分。

结束

相关推荐

Custom Post Templates

The Issue: 我正在寻找定制的单篇文章模板,以添加或删除单个元素作为普通单篇文章的功能。有很多方法可以在WordPress中为单个帖子创建自定义帖子模板。尤其是post格式是使用默认模板处理默认情况的绝佳机会;然而,我需要真正的自定义模板。The Idea: 我的第一种方法是根据post ID添加if/else语句:// check if custom post if ( is_single(\'999\') ) // check if there is a custom