我需要执行此自定义查询,以针对post_metadata值和分类术语进行检查。我使用的是从Wordpress的抄本中修改的代码,但始终返回零结果。我犯了一个错误吗? (已更新:首先显示将其加载到变量中的位置)

global $wpdb;

$querystr = "
    SELECT * FROM $wpdb->posts
    LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id)
    LEFT JOIN $wpdb->term_relationships ON($wpdb->posts.ID = $wpdb->term_relationships.object_id)
    LEFT JOIN $wpdb->term_taxonomy ON($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
    LEFT JOIN $wpdb->terms ON($wpdb->term_taxonomy.term_id = $wpdb->terms.term_id)
    WHERE $wpdb->terms.name = '" . $service . "'
    AND $wpdb->term_taxonomy.taxonomy = 'Services'
    AND $wpdb->postmeta.meta_value = '" . $county . "'
    AND $wpdb->posts.post_status = 'publish'
    AND $wpdb->posts.post_type = 'post'
    AND $wpdb->postmeta.meta_key = 'order'
    ORDER BY $wpdb->postmeta.meta_value ASC";

$pageposts = $wpdb->get_results($querystr, OBJECT);

最佳答案

我建议记录实际执行的字符串(将此选择保存到变量中并记录该变量,然后将该变量传递给wpdb查询)。拥有sql之后,您可以更轻松地对其进行故障排除(或将其发布在此处以获得更多帮助)。

关于php - 针对分类术语和发布元数据的Wordpress自定义查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18622861/

10-09 15:39
查看更多