可以显示包含短代码的帖子吗?

时间:2012-04-22 作者:Ayaz Malik

我有一些帖子有某种短代码。不幸的是,这些帖子属于不同的类别,包含不同的标签,所以我无法查询它们。我是否可以运行一个查询来显示所有包含此短代码的帖子,其中xx是某个id(数字)。感谢您的帮助。干杯

1 个回复
SO网友:kaiser

分类查询始终使用get_posts() 用于侧查询。query_posts() 仅用于主查询和new WP_Query() 应仅用于第二次查询。Read more here.

您可以按分类法(类别、术语等)查询帖子:

$cat_posts = new WP_Query( array(
    \'tax_query\' => array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'movie_janner\',
            \'field\' => \'slug\',
            \'terms\' => array( \'action\', \'commedy\' )
        ),
        array(
            \'taxonomy\' => \'actor\',
            \'field\' => \'id\',
            \'terms\' => array( 103, 115, 206 ),
            \'operator\' => \'NOT IN\'
        )
    )
) );
如果要按快捷码进行查询,还可以在查询内容时添加/删除筛选器。

让舒尔阅读评论carefully!

function wpse49871_shortcode_query_filter( $where )
{
    global $wpdb;

    // Lets be on the safe side, escape and such.
    $new_where = $wpdb->prepare( 
         "%s AND %s LIKE %s"
        ,$where
        ,"{$wpdb->posts}.post_content"
        // If you know the exact ID, then just insert it in here.
        ,like_escape( \'%fileurl=%\' )
    );

    return $new_where;
}
function wpse49871_get_shortcode_posts()
{
    add_filter( \'posts_where\', \'wpse_shortcode_query_filter\' );
    $posts = get_posts( array(
        // Do your query in here. See "Taxonomy Query" args above for example
    ) );

    // Don\'t need it anymore after this run
    remove_filter( \'posts_where\', \'wpse_shortcode_query_filter\' );

    return $posts;
}
Aneven better approach 可能是将其封装在一个类中,如另一个Q中所示。

结束

相关推荐

如何将文本添加到_Content,但在img/Shortcode之后

我试图在每篇文章的开头添加一些文字(文字来自post_meta, 但是对于这个示例,我们假设它是静态文本)。以下是我尝试的内容:add_filter(\'the_content\', function($content) { return \'Text from meta - \' . $content; }); 然而,如果帖子以一个通常是浮动的图像开始(有时甚至用标题短代码包装),添加的文本将出现在图像之前。我想在文章的第一段前面加上文字。有没有办法在不解析完整