wpdb->从table1查询检查元数据并发布状态

时间:2014-10-15 01:20:14

标签: php mysql wordpress

我有一个相当复杂的需求,由于我对WordPress数据库结构和所有内容的了解有限,我不完全确定从哪里开始。所以这就是我的目标。

我有一个看起来像这样的自定义表:

wp_buzzsumo

+--------------------------------------+
| id  pageID  title  totalShares  date |
+--------------------------------------+
| 1   25      -      20000        -    |
| 2   29      -      1992         -    |
| 3   25      -      122345       -    |
| 4   27      -      134          -    |
+--------------------------------------+

我有一个WordPress查询,如下所示:

SELECT * FROM wp_buzzsumo ORDER BY totalShares DESC LIMIT 20

然后在我输出结果的PHP循环中,我有一些语句来检查一些东西..但现在由于LIMIT的{​​{1}}在某些情况下它不返回任何东西因为前20个结果使if语句失败...所以现在我需要一种方法将这些语句放入查询中..

20

$ PageID必须与上表中的if( !get_field("hide_trending_bar", $PageID) && !get_field("hide_hashtags_from_trending_bar", $PageID) && get_page($PageID)->post_status == "publish" ) 列匹配。

我需要一个像这样的查询我相信..但我知道这不是正确的做法..

pageID

1 个答案:

答案 0 :(得分:0)

另一种方法: -

$pageids = $wpdb->get_col("SELECT id FROM {$wpdb->prefix}buzzsumo ORDER BY totalShares DESC LIMIT 20",ARRAY_N);

$args = array(
    'post_status'      => 'publish',
    'post_status'      => 'page',
    'include'          => $pageids,
    'meta_query'       => array(
        'relationship' => 'AND',
         array(
            'key'      => 'hide_trending_bar',
            'value'    => '',
            'compare'  => '='
        ),
        array(
            'key'      => 'hide_hashtags_from_trending_bar',
            'value'    => '',
            'compare'  => '='
        ),

    )
);
$posts = get_posts( $args );