我有自己的SQL字符串来选择带有特定WHERE子句的自定义Post类型Post。我使用了偏移量和限制,根据显示的页面返回适当的帖子。这很好用。
现在,我想previous_posts_link()
和next_posts_link()
功能正常。他们都是从get_posts_nav_link
其中使用global $wp_query
.
有没有办法重新分配global $wp_query
使用我的SQL字符串或$wpdb->get_results
结果还是其他什么?所以本地人previous_posts_link()
和next_posts_link()
WP功能将起作用。
如果没有,如何复制上一个和下一个后期链接功能?
我真的很感激任何帮助和建议!我完全受不了了
谢谢:)
NOTE: 我刚刚注意到previous_posts_link()
所有页面都正常工作,但是no idea why
在这种情况下,为什么next_posts_link
不工作:S
代码如下:
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$post_per_page = intval(get_query_var(\'posts_per_page\'));
$offset = ($paged - 1)*$post_per_page;
$sql = "
SELECT SQL_CALC_FOUND_ROWS wp_posts.*, wp_postmeta.*
FROM wp_posts
INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id)
WHERE 1=1
AND wp_posts.post_type = \'movie\'
AND (wp_posts.post_status = \'publish\' OR wp_posts.post_status = \'private\')
AND ((wp_postmeta.meta_key = \'_expiry_date\' AND CAST(wp_postmeta.meta_value AS DATE) >= \'".$current_date."\')
OR (mt1.meta_key = \'_expiry_date\' AND CAST(mt1.meta_value AS CHAR) = \'\'))
GROUP BY wp_posts.ID
ORDER BY wp_posts.post_date DESC
LIMIT ".$offset.", ".$post_per_page;
$movies_all_current = $wpdb->get_results( $sql, OBJECT);
if($movies_all_current) {
global $post;
//loop
foreach( $movies_all_current as $key=>$post ) {
setup_postdata($post);
//display each post
//...
} //end foreach ?>
//navigation
<div class="navigation">
<div class="previous panel"><?php previous_posts_link(\'« newer\') ?></div>
<div class="next panel"><?php next_posts_link(\'older »\') ?></div>
</div>
}