wordpress php 按类别名称查询

wordpress php query by category name

我想为单独的类别帖子创建单独的博客页面。我能够找到的是 运行ning 按类别编号查询,但这对我来说不够动态,因为我想 运行 查询页面标题,即 = 类别名称。

基本上在页面 "events" 上,我想显示名为 "events"(类别名称 == 页面标题)的类别下的博文,依此类推。

任何关于如何实现这一目标的见解都会很棒。我尝试做但失败的是:

<?php query_posts('category_name='.get_the_title()); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <div>
        <h1><?php the_title(); ?></h1>
        <p><?php the_content(); ?></p>
    </div>
<?php endwhile; else: ?>no match<?php endif; ?>

感谢您提供任何见解、链接或通知。

您可以使用 get_post 函数来完成。

这样做:

<?php

    $args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );
    $myposts = get_posts( $args );

    foreach ( $myposts as $post ) : setup_postdata( $post ); ?>
    <div>
        <h1><?php the_title(); ?></h1>
        <p><?php the_content(); ?></p>
    </div>
    <?php endforeach; 
    wp_reset_postdata();

?>

如果您需要进一步的帮助,请告诉我。

首先,永远不要使用 query_posts。它会破坏主查询,re运行s 查询会减慢您的页面速度,错误地设置插件使用的重要功能,get_queried_object() 之类的功能,并且会扰乱分页。

如果您需要 运行 自定义查询,请使用 WP_Query

回到您原来的问题,默认类别参数不使用类别名称,仅使用 slug 和 ID。鼻涕虫是可控的,因此您可能希望使用带有 category_name 参数的鼻涕虫。

如果您确实需要传递类别名称,那么您应该使用 tax_query 接受传递给 terms 参数的名称

您可以通过参数传递以下内容

'tax_query' => array(
    array(
        'taxonomy' => 'category',
        'field' => 'name',
        'terms' => 'name of your category',
        'include_children' => false,
    ) ,
);