我需要使用CUSTOM TABLE和POSTMETA加入POSTS。我正在跟踪自定义表中的热门帖子,但我只想要返回具有特定postmeta值的帖子。
我搜索过,找不到啧啧。
这就是我认为'我应该做的......但是当它在phpmyadmin中手动完成时它不起作用。
SELECT(发布信息)FROM posts IN INNER JOIN custom_table t ON p.ID = t.ID INNER JOIN post_meta m ON p.ID = m.ID 在哪里m.metakey ='mykey'AND post_type ='post'和post_date< '$ now'和post_date> '$ lastmonth' ORDER BY postcount DESC LIMIT 5“);
我是否需要将post meta作为单独的子查询内部加入?
答案 0 :(得分:2)
如果我建议,请尝试使用WP_Query()。它会有点笨拙,因为你需要为发布日期范围添加一个过滤器,然后将其删除,但如果没有三层SQL连接,它将是可预测的功能。
<?php
include_once( "wp-config.php" );
function filter_date_range( $where = '' ) {
$lastmonth = date("Y-m-d 00:00:00", strtotime("-1 month"));
$where .= " and post_date<now() and post_date>'{$lastmonth}'";
return( $where );
}
add_filter( 'posts_where', 'filter_date_range' );
$q = new WP_Query(array(
"post_status" => "publish",
"post_type" => "post",
"posts_per_page" => 5,
"meta_query" => array(array(
"key" => "mykey",
"value" => "my_preferred_value"
))
));
remove_filter( 'filter_date_range' );
var_dump( $q->posts );
?>