WP_QUERY:如何在自定义分类中检索当前术语slug?

时间:2014-11-29 作者:user3046831

使用WP Types Plugin, 我设置了一个自定义post类型(slug:portfolio), 具有自定义分类法(slug:portfolio-category).

自定义分类法有三项(slug:group1, group2, group3) 组织公文包帖子。

在每个公文包页面上,我显示了来自同一分类术语的3篇相关帖子,按slug过滤:

global $post;

$term_list = wp_get_post_terms($post->ID, \'portfolio-category\', array("fields" => "names"));

      $wpex_port_query = new WP_Query(
          array(
              \'post_type\' => \'portfolio\',
              \'showposts\' => \'3\',
              \'orderby\' => \'rand\',
              \'post__not_in\' => array($post->ID),
              \'no_found_rows\' => true,
              \'tax_query\' => array(
                  array(
                     \'taxonomy\' => \'portfolio-category\',
                     \'field\'    => \'slug\',
                     \'terms\'    => $term_list,
                    )
                )
            )
        );
这基本上是可行的,但我想知道是否有比创建全局变量更好的方法$post? 建议的处理方法是什么?

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

我不确定你的问题到底是什么,你没有创造$post, 只是访问它。这是WordPress中非常常见的一幕。

然而,从API的角度来看,当前帖子的is ID是您唯一需要使用的东西get_the_ID() 功能来实现这一点,SAN自己处理全局事务。

SO网友:Milo

您可以使用get_queried_object_id() 如果出于某种原因$post 但当前不包含主查询的post对象wp_reset_postdata() 如果是这样的话,应该解决这个问题。正如Rarst所说,进入全球$post, 它已经存在了。

结束

相关推荐