自定义邮寄类型存档作为首页

时间:2012-10-22 作者:Robert Cordes

我基本上也有同样的问题this question, 但是正确的答案对我来说并不适用。是的,我从我的CPT那里得到了一份帖子列表,但是archive-{post-type}.php 不用于呈现页面。它仍然使用index.php. 任何帮助都会很好!

这是我的代码:

add_action(\'pre_get_posts\', \'my_front_page\');
function my_front_page($wp_query) {
  $post_type = \'foobar\';

  if ( $wp_query->get(\'page_id\') == get_option(\'page_on_front\') ) {
    $wp_query->set(\'post_type\', $post_type);
    $wp_query->set(\'page_id\', \'\');

    // Fix conditional functions like is_front_page or is_single
    $wp_query->is_page = 0;
    $wp_query->is_singular = 0;
  }
}

2 个回复
SO网友:Adam

你为什么不试着用home.php 归档并将所需的循环/查询放置在该文件中,或者使用get_template_part 检索包含循环的文件。

你能给我们看看你的密码吗?

我经常做的是我的结构index.php 就像这样,

<?php get_header(); ?>

    <?php if ( is_home() ) {

            get_template_part(\'home.php\');

        } else {

           //run standard/default loop here

        } 
    ?>

<?php get_footer(); ?>
然后在home.php 你可以随心所欲,

$args = array( \'posts_per_page\' => 10, \'post_type\' => \'custom_post_type\' );
$wp_query = new WP_Query( $args ); 
while ( $wp_query->have_posts() ) : $wp_query->the_post();
 //get your title, content, tags, etc
endwhile;
采用这种方法you are NOT required to set a static front page 在您的仪表板设置下正常Settings -> Reading -> Front page displays 部分

注意:这不是实现您想要的目标的唯一方法,但如果您不习惯使用过滤器或遇到问题(当然,在目前为止没有看到您的代码的情况下这样说),这是一种可靠的方法,无需使用任何过滤器。

SO网友:dg4220

我会尝试这样做:保存您的存档-{自定义帖子类型}。php作为模板-{custom post type}。php然后在调用标题之前在文件中发布如下注释-将模板名称从“CPT”更改为您想要的任何名称。

现在创建一个新页面并使用此模板文件显示内容。然后转到“设置”->“阅读”页面,并设置首页显示:作为新页面

/**
 * Template Name: CPT Archive
 * 
 */

结束

相关推荐

自定义邮寄类型存档作为首页 - 小码农CODE - 行之有效找到问题解决它

自定义邮寄类型存档作为首页

时间:2012-10-22 作者:Robert Cordes

我基本上也有同样的问题this question, 但是正确的答案对我来说并不适用。是的,我从我的CPT那里得到了一份帖子列表,但是archive-{post-type}.php 不用于呈现页面。它仍然使用index.php. 任何帮助都会很好!

这是我的代码:

add_action(\'pre_get_posts\', \'my_front_page\');
function my_front_page($wp_query) {
  $post_type = \'foobar\';

  if ( $wp_query->get(\'page_id\') == get_option(\'page_on_front\') ) {
    $wp_query->set(\'post_type\', $post_type);
    $wp_query->set(\'page_id\', \'\');

    // Fix conditional functions like is_front_page or is_single
    $wp_query->is_page = 0;
    $wp_query->is_singular = 0;
  }
}

2 个回复
SO网友:Adam

你为什么不试着用home.php 归档并将所需的循环/查询放置在该文件中,或者使用get_template_part 检索包含循环的文件。

你能给我们看看你的密码吗?

我经常做的是我的结构index.php 就像这样,

<?php get_header(); ?>

    <?php if ( is_home() ) {

            get_template_part(\'home.php\');

        } else {

           //run standard/default loop here

        } 
    ?>

<?php get_footer(); ?>
然后在home.php 你可以随心所欲,

$args = array( \'posts_per_page\' => 10, \'post_type\' => \'custom_post_type\' );
$wp_query = new WP_Query( $args ); 
while ( $wp_query->have_posts() ) : $wp_query->the_post();
 //get your title, content, tags, etc
endwhile;
采用这种方法you are NOT required to set a static front page 在您的仪表板设置下正常Settings -> Reading -> Front page displays 部分

注意:这不是实现您想要的目标的唯一方法,但如果您不习惯使用过滤器或遇到问题(当然,在目前为止没有看到您的代码的情况下这样说),这是一种可靠的方法,无需使用任何过滤器。

SO网友:dg4220

我会尝试这样做:保存您的存档-{自定义帖子类型}。php作为模板-{custom post type}。php然后在调用标题之前在文件中发布如下注释-将模板名称从“CPT”更改为您想要的任何名称。

现在创建一个新页面并使用此模板文件显示内容。然后转到“设置”->“阅读”页面,并设置首页显示:作为新页面

/**
 * Template Name: CPT Archive
 * 
 */

相关推荐