显示与类别对应的帖子列表

时间:2020-07-22 作者:pual

我有一段代码,它在我的索引上显示了我的博客文章列表。我想给它添加一个category参数,以便只显示具有特定类别的帖子列表。我似乎无法做到这一点,不打破一切。。。

谢谢你宝贵的帮助。

    <?php $all_posts = new WP_Query( array( \'post_type\' => \'post\', \'post_status\' => \'publish\', \'posts_per_page\' => -1 ) );

if ( $all_posts->have_posts() ):?>

    <ul>
        <?php while ( $all_posts->have_posts() ) : $all_posts->the_post();  global $post;
            ?>

            <li class=\'sub-menu\'> 
                <a href=\'#\' class="exposition"  data-id="<?php the_id();?>"><?php the_title(); ?></a>
                <ul>
                    <li>
                        <?php the_content(); ?>
                    </li>
                </ul>
            </li>
            <?php $images = get_field(\'gallery\');?>

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

        <?php endif; ?>

1 个回复
最合适的回答,由SO网友:t2pe 整理而成

或者,考虑使用get\\u posts()?

get_posts()

这将需要对代码进行其他更改,但您可以轻松创建一个包含类别的查询,然后对结果进行foreach。

Update:这里有一个等效于使用get\\u posts()编写的代码。首先复制您自己的代码,但以下代码将全部替换。请注意参数中的类别ID-这是您需要更改以满足需要的内容。

对于这种用例,get\\u posts()函数比WP\\u Query函数简单得多,但如果需要复杂的查询,则它的灵活性较低。

<?php
$args = array(
  \'numberposts\' => -1,
  \'category\' => 1 //REPLACE THIS NUMBER WITH YOUR CATEGORY ID!
);

$all_posts = get_posts( $args );

if (count($all_posts) > 0) : ?>

<ul>
<?php 
    foreach ( $all_posts as $post ) : ?>
        <li class="sub-menu"> 
            <a href=\'#\' class="exposition"  data-id="<?php _e($post->ID);?>">
                <?php _e($post->post_title);?>
            </a>
            <ul>
                <li>
                    <?php _e($post->post_content);?>
                </li>
            </ul>
        </li>
        
        <?php 
    endforeach;
?>
</ul>

相关推荐

主题中的unctions.php是否适用于所有模板?

我已经读了一段时间主题开发人员手册,也许最后我遇到了太多关于wordpress主题开发的问题。我已经很长时间没有在C#/Java背景下进行任何主题/php开发了。我想我只是想在开始使用wordpress之前有一个清晰的认识,这就是我想做的:为主站点创建一个页面,并将其设置为main,只查询一个类别。我想一个主题的功能就像前/后过滤器/挂钩的控制器创建另一个页面,但只允许某些自定义帖子类型,这一切都会通过函数完成。主题的php</如果这不是我想更好地了解的地方,我很抱歉。如果您需要在评论中进一步澄清,