Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取与自定义帖子类型、分类和类别匹配的所有帖子_Php_Wordpress_Custom Post Type_Taxonomy_Custom Taxonomy - Fatal编程技术网

Php 获取与自定义帖子类型、分类和类别匹配的所有帖子

Php 获取与自定义帖子类型、分类和类别匹配的所有帖子,php,wordpress,custom-post-type,taxonomy,custom-taxonomy,Php,Wordpress,Custom Post Type,Taxonomy,Custom Taxonomy,我目前有以下设置: 称为“研讨会”的自定义帖子类型 在车间职位类型中,我有一个称为“车间状态”的分类法 车间状态随后有类别,例如“过去的事件” 我一直在使用下面的代码获取特定帖子类型中的帖子: <?php $loop = new WP_Query( array( 'post_type' => 'workshops', 'posts_per_page' => -1 ) ); ?> <?php while ( $loop->have_posts() ) : $

我目前有以下设置:

  • 称为“研讨会”的自定义帖子类型
  • 在车间职位类型中,我有一个称为“车间状态”的分类法
  • 车间状态随后有类别,例如“过去的事件”
我一直在使用下面的代码获取特定帖子类型中的帖子:

<?php $loop = new WP_Query( array( 'post_type' => 'workshops', 'posts_per_page' => -1 ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

    content here...

<?php endwhile; wp_reset_query(); ?>

内容在这里。。。
我的问题是:如何更改此设置以从自定义帖子类型和自定义分类中的“过去事件”类别中获取帖子

我的目标是拥有多个页面模板,并分别针对每个类别


我曾尝试更改排列以单独针对类别,但这不起作用。我找不到有关如何针对所有方面的在线资源。

您只需添加如下类别属性:

$query = new WP_Query( array( 'category_name' => 'past-event' ) );
因此,在您的示例中,这将成为:

$loop = new WP_Query( array( 'post_type' => 'workshops', 'posts_per_page' => -1, 'category_name' => 'past-event' ) );

如果我理解正确,你可以做一大堆的事情,如

中所述,你正在寻找这样的东西:

$args = array(
    'post_type' => 'workshops',
    'posts_per_page' => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'workshop-status',
            'field' => 'slug',
            'terms' => array( 'past-event'),
            'operator' => 'IN'
        ),
    )

);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) :
    while ( $loop->have_posts() ) : $loop->the_post();

        //do your stuff

    endwhile;
endif;
wp_reset_postdata();

使用下面的方法。您可以传递类别id、id列表、类别slug等。您可以使用
tax\u query
参数从多个分类中获取文章。