自定义帖子类型的无限帖子

Posted

技术标签:

【中文标题】自定义帖子类型的无限帖子【英文标题】:Unlimited posts on custom post type 【发布时间】:2014-06-13 13:59:01 【问题描述】:

我有一个自定义帖子类型需要设置为“显示所有帖子”。在阅读中,我将其设置为 10,因为在博客页面上只需要 10 篇文章。如何设置 CPT 页面上的最大帖子数?我找到了这段代码...

$args = array('post_type' => 'portfolio',
'posts_per_page' => -1,
'tax_query' => array(
array(
'taxonomy' => 'portfolio',
'field' => 'slug',
)
)
)

$query = new WP_Query($args)

我是 php 新手,所以我不确定在哪里添加 - functions.php 在“注册 CPT”或存档页面的循环中?循环非常复杂,因为我每次都要引入 3 个分类法并设置值。

<?php $i = 0; ?>
                <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

                    <?php 
                    $i++;
                    $term_list1 = wp_get_post_terms($post->ID, 'discipline', array("fields" => "ids"));
                    $term_list2 = wp_get_post_terms($post->ID, 'type', array("fields" => "ids")); 
                    $term_list3 = wp_get_post_terms($post->ID, 'sector', array("fields" => "ids")); 
                     ?>

                <li class="item" data-id="id-<?php echo $i; ?>" data-type='<?php foreach ($term_list1 as $value) echo $value." "; ?><?php foreach ($term_list2 as $value) echo $value." "; ?><?php foreach ($term_list3 as $value) echo $value." "; ?>'>
                    <a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>

                </li>

                <?php endwhile; else : ?>
                <?php endif; ?>

任何帮助将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

我想通了,我用这个:

<?php $args = array( 'post_type'=>'portfolio', 'posts_per_page'=>100); 
                    $portfolio = new WP_Query( $args ); while( $portfolio->have_posts() ) : $portfolio->the_post(); ?>

【讨论】:

宁可使用'posts_per_page' =&gt; -1 无限发帖【参考方案2】:

您需要编辑模板,在循环之前将这些参数传递给query_posts 函数,然后在之后使用wp_reset_query 重置查询:

<?php
query_posts( array(
    'post_type' => 'portfolio',
    'posts_per_page' => -1 )
);
$i = 0;
if (have_posts()) : while (have_posts()) :

    the_post();

    $i++;
    $term_list1 = wp_get_post_terms($post->ID, 'discipline', array("fields" => "ids"));
    $term_list2 = wp_get_post_terms($post->ID, 'type', array("fields" => "ids"));
    $term_list3 = wp_get_post_terms($post->ID, 'sector', array("fields" => "ids"));
    ?>

<li class="item" data-id="id-<?php echo $i; ?>" data-type='<?php echo implode(' ',$term_list1 ) . ' ' . implode(' ',$term_list2 ) . ' ' . implode(' ',$term_list3 ); ?>'>
    <a href="<?php the_permalink() ?>"><?php the_post_thumbnail(); ?></a>

</li>

<?php
endwhile; endif;
wp_reset_query();
?>

我还使用 implode 而不是 foreach 循环来处理您的数据类型生成

【讨论】:

谢谢你。我找到了答案,但我会使用你的代码,看看它是否也有效。感谢整理代码。

以上是关于自定义帖子类型的无限帖子的主要内容,如果未能解决你的问题,请参考以下文章

查询自定义帖子类型并按自定义帖子类型排序

仅显示特定自定义帖子类型的自定义分类计数

Wordpress 自定义帖子类型和自定义分类

自定义帖子类型不包括分类帖子

获取自定义帖子类型中单个帖子的类别

自定义帖子类型的单个帖子模板覆盖