Saya memiliki string SQL saya sendiri untuk memilih posting Jenis Posting Kustom dengan klausa WHERE tertentu. Saya telah menggunakan offset dan batas untuk mengembalikan posting yang sesuai tergantung pada halaman yang ditampilkan. Itu bekerja dengan baik.
Sekarang, saya ingin membuat previous_posts_link()
dan next_posts_link()
fungsi berfungsi. Mereka berdua dipanggil dari get_posts_nav_link
yang menggunakan global $wp_query
.
Apakah ada cara saya dapat menetapkan ulang global $wp_query
dengan string SQL saya atau $wpdb->get_results
hasil atau yang lainnya? Jadi fungsi asli previous_posts_link()
dan next_posts_link()
WP akan berfungsi.
Jika tidak, bagaimana saya bisa mereproduksi fungsi tautan postingan dan post selanjutnya?
Saya akan sangat menghargai bantuan dan saran! Saya benar-benar terjebak dengan ini.
Terima kasih :)
CATATAN: Saya baru saja memperhatikan bahwa previous_posts_link()
berfungsi dengan benar di semua halaman, tetapi no idea why
dan dalam hal ini, mengapa next_posts_link
tidak berfungsi: S
Ini kodenya:
$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>
}