通过分类术语名称和空格获取帖子

时间:2017-04-03 作者:Sid

我正在尝试检索与我的自定义分类术语关联的所有帖子。我的自定义分类法是“存储”。我正在使用以下代码。

$posts = get_posts(array(
                  \'post_type\' => \'coupon\',
                  \'numberposts\' => -1,
                  \'post_status\' => array(\'publish\', \'unreliable\', \'draft\'),
                  \'tax_query\' => array(
                    array(
                      \'taxonomy\' => \'stores\',
                      \'field\' => \'name\',
                      \'terms\' => \'New Store\', 
                      \'include_children\' => false
                    )
                  )
                ));
我的分类术语名称是“新店”。只是因为它在标题中有一个空格,我无法获得任何与之相关的帖子。我在标题中没有空格的分类术语上尝试了相同的代码,结果成功了。

任何帮助都将不胜感激。谢谢

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

不管怎样,我只是从name中提取了分类术语id,然后从中提取了自定义帖子。如果有人在看,下面是代码:

$term = get_term_by(\'name\', \'New Store\', \'stores\');

            $posts = get_posts(array(
              \'post_type\' => \'coupon\',
              \'numberposts\' => -1,
              \'post_status\' => array(\'publish\', \'unreliable\'),
              \'tax_query\' => array(
                array(
                  \'taxonomy\' => \'stores\',
                  \'field\' => \'id\',
                  \'terms\' => $term->term_id, 
                  \'include_children\' => false
                )
              )
            ));

SO网友:Wilco

你可以通过slug而不是name来获取帖子。像这样:

$posts = get_posts(array(
    \'post_type\' => \'coupon\',
    \'numberposts\' => -1,
    \'post_status\' => array(\'publish\', \'unreliable\', \'draft\'),
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'stores\',
            \'field\'    => \'slug\',
            \'terms\'    => array( \'new-store\' ),
            \'include_children\' => false
        )
    )
));
或者您可以通过术语id获取帖子。如下所示:

$posts = get_posts(array(
    \'post_type\' => \'coupon\',
    \'numberposts\' => -1,
    \'post_status\' => array(\'publish\', \'unreliable\', \'draft\'),
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'stores\',
            \'field\' => \'term_id\',
            \'terms\' => array( 4 ),
            \'include_children\' => false
        )
    )
));
在这里,您可以找到如何知道术语id的指南:https://facetwp.com/how-to-find-a-wordpress-terms-id/

相关推荐

是否可以取消对特定帖子类型的POSTS_PER_PAGE限制?

我想知道我是否可以取消特定帖子类型的posts\\u per\\u页面限制。在存档中。php页面我显示不同的帖子类型,对于特定的“出版物”帖子类型,我想显示所有帖子。我如何在不影响传统“post”类型的情况下实现这一点?