制作定制贴子式登录页面或档案页面的正确方式

时间:2015-06-17 作者:hyperdrive

我总是遇到为自定义帖子类型创建归档或登录页的问题,我想知道其他人是如何处理这一问题的。

如果我想为自定义帖子类型创建登录页,那么我希望存档页包含可编辑的内容(即物理页)。我需要为我的存档页制作一个自定义模板。这个问题是,这个页面与自定义帖子类型没有关系。所以现在我需要将archive设置为false,并将重写规则设置为与自定义post类型的slug相匹配。此外,当查看自定义帖子类型的单个页面时,菜单不知道自定义登录页处于活动状态。

有人对此有合理的解决方案吗?

2 个回复
SO网友:luke

对于这种情况,我创建了一个自定义页面模板,比如tpl-archive-page.php.例如,使用Advanced Custom Fields 以及Post Type Selector Field(*)用户可以选择要连接的帖子类型。

<?php
/**
 * Template Name: CPT Archive Page
 */

get_header();

while (have_posts()) :

    the_post();

    get_template_part(\'content\', \'page\');

    $archive_query_post_type = get_post_meta(get_queried_object_id(), \'cpt_archive_query_post_type\', true);

    if( $archive_query_post_type && is_string($archive_query_post_type) ) {
        $args = array(
            \'post_type\' => $archive_query_post_type,
            \'posts_per_page\'=> -1,
            \'orderby\'       => \'title\',
        );

        $archive_query = new WP_Query( $args );

        if ( $archive_query->have_posts() ) {
            while ( $archive_query->have_posts() ) {
                $archive_query->the_post();
                get_template_part(\'content\', get_post_type() );
            }
        }

        wp_reset_postdata();
    }

endwhile;

get_footer();
Thehas_archive 注册自定义帖子类型时的选项必须设置为false.

(*)如果您使用的是ACF5/Pro,请考虑this 分岔路口。

SO网友:s_ha_dum

我会。。。

创建注册的CPT\'has_archive\' => false 并将其用作“可编辑内容”源archive-{cpt-name}.php 在主题中,并在该模板中查询内容CPT数据或“页面”数据

结束

相关推荐

显示Archives.php中的所有自定义帖子类型

我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W

制作定制贴子式登录页面或档案页面的正确方式 - 小码农CODE - 行之有效找到问题解决它

制作定制贴子式登录页面或档案页面的正确方式

时间:2015-06-17 作者:hyperdrive

我总是遇到为自定义帖子类型创建归档或登录页的问题,我想知道其他人是如何处理这一问题的。

如果我想为自定义帖子类型创建登录页,那么我希望存档页包含可编辑的内容(即物理页)。我需要为我的存档页制作一个自定义模板。这个问题是,这个页面与自定义帖子类型没有关系。所以现在我需要将archive设置为false,并将重写规则设置为与自定义post类型的slug相匹配。此外,当查看自定义帖子类型的单个页面时,菜单不知道自定义登录页处于活动状态。

有人对此有合理的解决方案吗?

2 个回复
SO网友:luke

对于这种情况,我创建了一个自定义页面模板,比如tpl-archive-page.php.例如,使用Advanced Custom Fields 以及Post Type Selector Field(*)用户可以选择要连接的帖子类型。

<?php
/**
 * Template Name: CPT Archive Page
 */

get_header();

while (have_posts()) :

    the_post();

    get_template_part(\'content\', \'page\');

    $archive_query_post_type = get_post_meta(get_queried_object_id(), \'cpt_archive_query_post_type\', true);

    if( $archive_query_post_type && is_string($archive_query_post_type) ) {
        $args = array(
            \'post_type\' => $archive_query_post_type,
            \'posts_per_page\'=> -1,
            \'orderby\'       => \'title\',
        );

        $archive_query = new WP_Query( $args );

        if ( $archive_query->have_posts() ) {
            while ( $archive_query->have_posts() ) {
                $archive_query->the_post();
                get_template_part(\'content\', get_post_type() );
            }
        }

        wp_reset_postdata();
    }

endwhile;

get_footer();
Thehas_archive 注册自定义帖子类型时的选项必须设置为false.

(*)如果您使用的是ACF5/Pro,请考虑this 分岔路口。

SO网友:s_ha_dum

我会。。。

创建注册的CPT\'has_archive\' => false 并将其用作“可编辑内容”源archive-{cpt-name}.php 在主题中,并在该模板中查询内容CPT数据或“页面”数据

相关推荐

Display an archives name

我想显示当前存档文件的名称,因此对于下面的url,我可以这样做<h1><?php echo \"answer\" ?></h1> 输出如下内容<h1>News</h1> 或者更好<h1>News: supplierName</h1> http://www.site.com/suppliers/news/?supplierstax=supplierName