获取CUSTOM_FIELD类似值的所有帖子

时间:2011-05-17 作者:Will Ashworth

我正在尝试使用Wordpress的内置函数进行MySQL风格的搜索,以获取帖子。可能有一种简单的方法可以做到这一点,我可能离解决方案还有一点距离。

我们的帖子中有自定义字段。这是作为自定义post类型导入的旧数据,custom\\u字段是来自旧数据库的额外数据。Wordpress中的每篇文章的自定义字段都是这样设置的:

key = subject
val = Subject One, Subject Two, Subject Three
例如,我正在尝试获取custom\\u字段值类似于“Subject 2”的所有帖子。也许有一种简单的方法可以做到这一点,但我还没有想到。谢谢你的帮助!

我已经有了一个正常工作的MySQL查询。我只是想使用Wordpress的函数来处理查询,而不是手动处理这个主题视图。以下是工作示例:

// Get posts that match LIKE this subject
$cft_by_subject = $wpdb->get_results(
    "SELECT
        wp_posts.ID,
        wp_posts.post_title,
        wp_posts.post_date,
        wp_posts.post_name,
        wp_postmeta.meta_value
     FROM
        wp_posts,
        wp_postmeta
     WHERE
        (wp_posts.ID = wp_postmeta.post_id) AND
        (wp_posts.post_type = \'our-custom-post-type\') AND
        (wp_posts.post_status = \'Publish\') AND
        (wp_postmeta.meta_key = \'subject\') AND
        (wp_postmeta.meta_value LIKE \'%".$this-is-our-subject."%\')
     ORDER BY
        wp_posts.ID ASC
    ",
    ARRAY_A
);

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

您可以在中使用meta\\u查询WP_Query

$args = array(
    \'post_type\' => \'post\',
    \'meta_query\' => array(
        array(
            \'key\' => \'subject\',
            \'value\' => \'Subject Two\',
            \'compare\' => \'LIKE\'
        )
    )
 );
$query = new WP_Query( $args );

结束

相关推荐

Preview posts returns 404

这是一个大型Wordpress多站点安装,使用单个博客的子文件夹,而不是域。我们正在运行3.1版,预览帖子不起作用。当我按preview时,我得到了404。php页面。日志文件中没有引起我注意的内容,所有插件都已禁用。有时,当我按preview时,会收到一条关于权限不足的错误消息。我没有办法尝试了。