使用自定义模板作为创世纪主题框架的自定义帖子类型?
-
16-10-2019 - |
题
(主持人注意: 原始标题是“我如何为创世主题框架中的自定义帖子类型创建和使用自定义模板?”)
我正在使用Genesis主题框架,几乎完全是“库存”的儿童主题。我有 WP简单帖子类型 已安装插件,并创建了一种自定义帖子类型(“成员”)。我有两个自定义字段,用于“成员”帖子类型(电话号码和地址)。我试图弄清楚如何在两个地方显示这些字段的信息: example.com/members
和 example.com/members/bob
. 。创世纪不支持典型 single-posttype.php
文件以创建自定义帖子类型的模板,但是即使这样做,也不会照顾 example.com/members
. 。关于如何获取所需信息的任何建议?
解决方案
原来我错了,创世纪确实支持 page_posttype.php
创建自定义模板的方法。事实证明这很简单。这是我的page_members.php文件的内容(位于子主题文件夹中):
<?php
/*
Template Name: Members
*/
remove_action('genesis_loop', 'genesis_do_loop');
add_action('genesis_loop', 'custom_loop');
function custom_loop() {
global $paged;
$args = array('post_type' => 'members');
genesis_custom_loop( $args );
}
genesis();
其他提示
看看Matt Wiebe在他的“更聪明的自定义帖子类型”插件中如何做到这一点:
http://somadesign.ca/projects/smarter-custom-post-types/
相关功能在这里:
function my_custom_template_include( $template ) {
if ( get_query_var('post_type') == 'members' ) {
if ( is_single() ) {
if ( $single = locate_template( array( 'members/single.php') ) )
return $single;
}
else { // loop
return locate_template( array(
'members/index.php',
'members.php',
'index.php'
));
}
}
return $template;
}
add_filter( 'template_include', 'my_custom_template_include' );
有人可以澄清此过程的下一步吗?我在Genesis Child主题中有类似的自定义帖子类型,需要在多台分类学页面以及单个自定义后页面上更改循环。在这种情况下,循环的自定义代码在哪里?谢谢!
但是,该模板需要进入儿童主题文件夹,而不是创世纪。
编辑:
您需要手动创建单$ postType.php,并如上所述将其添加到子主题中。请看一下 WordPress模板层次结构. 。不用说您添加到子主题中的任何内容都会覆盖父主题文件。