(主持人注意: 原始标题是“我如何为创世主题框架中的自定义帖子类型创建和使用自定义模板?”)

我正在使用Genesis主题框架,几乎完全是“库存”的儿童主题。我有 WP简单帖子类型 已安装插件,并创建了一种自定义帖子类型(“成员”)。我有两个自定义字段,用于“成员”帖子类型(电话号码和地址)。我试图弄清楚如何在两个地方显示这些字段的信息: example.com/membersexample.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模板层次结构. 。不用说您添加到子主题中的任何内容都会覆盖父主题文件。

许可以下: CC-BY-SA归因
scroll top