Belirli WHERE yan tümcesi ile Özel Yazı Türü gönderileri seçmek için kendi SQL dizem var. Görüntülenen bir sayfaya bağlı olarak uygun yazıları döndürmek için ofseti ve sınırı kullandım. Bu iyi çalışıyor.
Şimdi yapmak istiyorum previous_posts_link()
ve next_posts_link()
işlevler çalışır. Her ikisi de get_posts_nav_link
hangi kullanımlardan çağrılır global $wp_query
.
global $wp_query
SQL dizimle veya $wpdb->get_results
sonuçlarıyla veya başka bir şeyle yeniden atayabileceğim bir yol var mı ? Böylece yerel previous_posts_link()
ve next_posts_link()
WP işlevleri çalışır.
Değilse, önceki ve sonraki yazı bağlantı işlevlerini nasıl çoğaltabilirim?
Gerçekten herhangi bir yardım ve tavsiye için teşekkür ederiz! Buna tamamen takılıp kaldım.
Teşekkürler :)
NOT:previous_posts_link()
Tüm sayfalarda doğru çalıştığını fark ettim , ancak no idea why
bu durumda neden next_posts_link
çalışmıyor: S
İşte kod:
$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>
}