如何创建自己的自定义帖子格式?
或者如何使我的自定义帖子类型能够使用像
这样的功能get_post_format();
例如,我有一个类型为“accordion”的自定义帖子类型,我希望能够在循环中将其作为内容元素使用,但仅在它存在的情况下...
get_template_part( 'content', get_post_format() );
所以我正在寻找像
这样的功能get_custom_post_format();
在Wordpress中不存在。
有人试过类似的东西吗?
答案 0 :(得分:9)
我不确定您是否在询问如何创建自定义帖子格式或自定义帖子类型,因此我已经为两者提供了答案。
如果您问是否可以创建自定义帖子格式......
...然后答案是否定的。请参阅以下来自WordPress codex上的Post Formats的引用:
“帖子格式”功能提供了一个标准化的格式列表,可供支持该功能的所有主题使用。主题不需要支持列表中的每种格式。 主题甚至插件都无法引入新格式。此列表的标准化提供了众多主题之间的兼容性,以及外部博客工具以一致方式访问此功能的途径。
如果您询问如何创建自定义帖子类型:
创建(注册)自己的自定义帖子类型的最基本示例是将以下代码添加到主题中的functions.php文件中。
function register_recipes_post_type() {
$args = array( 'public' => true, 'label' => 'Recipes' );
register_post_type( 'recipe', $args );
}
add_action( 'init', 'register_recipes_post_type' );
当WordPress核心触发register_recipes_post_type
操作时,上面的代码挂钩了我们的init
函数。
一旦你添加了这段代码,如果你去你的wp-admin,你会在左边看到一个名为'Recipes'的新菜单,这是你的新自定义帖子类型。如果你添加一个新的食谱,给它一个标题和一些内容,发布它,然后尝试预览它,你会发现你得到404错误。创建新的自定义帖子类型后,您需要转到“设置”>你的wp-admin中的永久链接只是访问该页面将修复你的永久链接以包含新的自定义帖子类型,所以如果你现在回过头来刷新你刚创建的食谱的预览,你会发现它现在可以工作而不是404s。
现在,如果您创建一个名为single-recipe.php的新文件并在其中放入一些代码,那么现在只需将'test'用于查看它的工作原理,一旦有了,就刷新配方的预览再次创建,您应该看到它只显示“测试”一词。使用该文件,您可以创建一个完全自定义的模板,以显示该自定义帖子类型的单个条目(帖子),或者如果您的single.php包含get_template_part( 'content', get_post_format() );
,则可以使用content-recipe.php在你原来的帖子里。
显然,您的自定义帖子类型可能不适用于食谱,只是将食谱和食谱的实例更新为您想要的任何内容。
您还可以为帖子类型等存档创建其他特定于帖子类型的模板。上述内容应足以让您入门。
在注册帖子类型时,您还可以传递其他参数,您可以在此处查看完整列表:http://codex.wordpress.org/Function_Reference/register_post_type
我希望这会有所帮助。祝好运! =)
答案 1 :(得分:3)
WordPress目前不允许创建新的帖子格式。除了WordPress允许的内容之外,你无法定义任何帖子格式。
参考: 1. http://wp.tutsplus.com/tutorials/proof-using-post-formats/