WordPress:动态地将当前自定义帖子类型的类别用于新的WP_查询

WordPress:动态地将当前自定义帖子类型的类别用于新的WP_查询,wordpress,custom-post-type,Wordpress,Custom Post Type,我在一个自定义帖子类型模板中,我想进行一个新的WP_查询,以使用当前帖子的相同类别显示不同的自定义帖子类型帖子。我知道我可以把它作为一个字符串,但我需要使它为我的CPT模板动态 例如: <?php $args = array ( 'post_type' => 'new_cpt_to_display', 'category_name' => 'category_of_the_current_cpt' ); $new_cpt_query

我在一个自定义帖子类型模板中,我想进行一个新的WP_查询,以使用当前帖子的相同类别显示不同的自定义帖子类型帖子。我知道我可以把它作为一个字符串,但我需要使它为我的CPT模板动态

例如:

<?php
  $args = array (
         'post_type' => 'new_cpt_to_display',
         'category_name' => 'category_of_the_current_cpt' );

  $new_cpt_query = new WP_Query($args);

?>
我希望我解释得很好。

您可以将其组合起来,返回当前帖子的类别ID数组和每个类别或类别的结果中的类别,并为WP\u查询返回所有类别参数

解决了

从前面的答案中得到了一个想法

<?php
  $cat = get_the_category();
  $cat_name = esc_html( $cat[0]->name );
  $args = array (
    'post_type' => 'new_cpt_to_display',
    'category_name' => $cat_name
  );

  $new_cpt_query = new WP_Query($args);
?>

感谢您的帮助@doublesharp,但不幸的是,我已经尝试使用示例代码获取\u类别,并得到一个警告错误:urlencode期望参数1为字符串、数组。。。。在您的示例中使用category_uu时,我发现了一个可捕获的致命错误:stdClass类的对象无法转换为string,我还尝试了echo获取_类别;查看它是否捕获当前自定义帖子的类别,但只显示单词数组。该函数返回ID数组,而不是字符串,这就是为什么会出现该错误。WP_查询将数组作为参数,但如果您将其作为querystring传入,则不会这样做-您必须向WP_查询传递$arg数组,如示例所示。如果这不起作用,请发布您正在使用的完整代码,因为我的答案中的内容会很好。我非常感谢您的帮助@doublesharp。它确实有效,但当我尝试在while循环中使用它时,它会在new_cpt_to_display custom post type中显示所有帖子,而不是使用当前帖子的特定类别。你的答案太有用了,我只需要稍微修改一下。我使用了esc_html$cat[0]->name;返回字符串并将其用于类别名称。它现在显示正确。非常感谢你!我还有一个问题让我头痛了一个多星期,如果你想看看的话-
<?php
  $cat = get_the_category();
  $cat_name = esc_html( $cat[0]->name );
  $args = array (
    'post_type' => 'new_cpt_to_display',
    'category_name' => $cat_name
  );

  $new_cpt_query = new WP_Query($args);
?>