Wordpress SQL$wpdb按投递顺序而不是按日期查询
我有一个函数可以在Wordpress中查找帖子的兄弟姐妹,前三个和后三个。然而,目前,它在发布日期前订购,这不是我想要的。在wordpress中,我有一个插件,允许用户重新订购帖子,这就是它在网站上的显示方式。我需要这个查询不是按日期排序,而是按邮件的顺序排序。这可能吗Wordpress SQL$wpdb按投递顺序而不是按日期查询,sql,wordpress,Sql,Wordpress,我有一个函数可以在Wordpress中查找帖子的兄弟姐妹,前三个和后三个。然而,目前,它在发布日期前订购,这不是我想要的。在wordpress中,我有一个插件,允许用户重新订购帖子,这就是它在网站上的显示方式。我需要这个查询不是按日期排序,而是按邮件的顺序排序。这可能吗 function get_post_siblings( $limit = 3, $date = '' ) { global $wpdb, $post; if( empty( $date ) ) $date = $pos
function get_post_siblings( $limit = 3, $date = '' ) {
global $wpdb, $post;
if( empty( $date ) )
$date = $post->post_date;
//$date = '2009-06-20 12:00:00'; // test data
$limit = absint( $limit );
if( !$limit )
return;
$p = $wpdb->get_results( "
(
SELECT
p1.post_title,
p1.post_date,
p1.post_name,
p1.ID
FROM
$wpdb->posts p1
WHERE
p1.post_date < '$date' AND
p1.post_type = 'work' AND
p1.post_status = 'publish'
ORDER by
p1.post_date DESC
LIMIT
$limit
)
UNION
(
SELECT
p2.post_title,
p2.post_date,
p2.post_name,
p2.ID
FROM
$wpdb->posts p2
WHERE
p2.post_date > '$date' AND
p2.post_type = 'work' AND
p2.post_status = 'publish'
ORDER by
p2.post_date DESC
LIMIT
$limit
)
ORDER by post_date DESC
" );
$i = 0;
$adjacents = array();
for( $c = count($p); $i < $c; $i++ )
if( $i < $limit )
$adjacents['prev'][] = $p[$i];
else
$adjacents['next'][] = $p[$i];
return $adjacents;
函数get\u post\u同胞($limit=3,$date=''){
全球$wpdb,$post;
如果(空($日期))
$date=$post->post\u日期;
//$date='2009-06-20 12:00:00';//测试数据
$limit=缺勤($limit);
如果(!$limit)
返回;
$p=$wpdb->获取结果(“
(
挑选
p1.职位名称,
p1.U后日期,
p1.职位名称,
p1.ID
从…起
$wpdb->posts p1
哪里
p1.post_日期<'$date'和
p1.post_类型=‘工作’和
p1.post_状态=‘发布’
订购人
p1.post_日期说明
极限
美元限额
)
联合
(
挑选
p2.职位名称,
p2.发布日期,
p2.职位名称,
p2.ID
从…起
$wpdb->posts p2
哪里
p2.post_date>“$date”和
p2.post_类型=‘工作’和
p2.post_状态=‘发布’
订购人
p2.post_日期说明
极限
美元限额
)
邮购日期说明
" );
$i=0;
$adjacents=array();
对于($c=计数($p);$i<$c;$i++)
如果($i<$limit)
$adjancets['prev'][]=$p[$i];
其他的
$nextachents['next'][]=$p[$i];
返回$adjances;
}如果您的插件使用数据库字段“菜单顺序”来订购帖子,您可以将“发布日期”替换为“菜单顺序”。如果您的插件使用数据库字段“菜单顺序”来订购帖子,您可以将“发布日期”替换为“菜单顺序”