我有一个相当复杂的需求,由于我对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
答案 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 );