2012-03-29 24 views
5

Ben döngüde alfabetik sıralanır özel yayınlar ile wordpress web sitesi geliştiriyorum.Wordpress: alfabetik sıraya göre önceki_post_link/next_post_link?

<!-- THE ARGS --> 
<?php global $query_string; 
$args = wp_parse_args($query_string); 
$args = array(
    'post_type' => 'custom_post', 
    'orderby' => 'title', 
    'order' => 'ASC', 
    'posts_per_page' => -1, 
    ); ?> 

<!-- THE LOOP --> 
<?php $wp_query = new WP_Query($args); ?> 
<?php while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 
<?php endwhile; ?> 
<?php wp_reset_query(); ?> 

Orada hiçbir şey fantezi, sadece normal bir döngü.

Bir yayını açmak

kendi sayfasında her zamanki previous_post_link var ve bu yüzden yayınlar arasında gezinebilirsiniz next_post_link. Ancak bu, yazıların kronolojik sıralamasıyla yapılır ve bunu, döngüde kullandığım gibi aynı alfabetik sırayla yapmak isterim. Bu konuda herhangi bir yardım çok takdir edilecektir. Şimdiden teşekkürler!

cevap

6

this plug-in Eklentinin yıllarda güncelleştirilmiş değil Yani

<ul class="pager"> 
     <?php previous_post_link_plus(array('order_by' => 'post_title')); ?> 
     <?php next_post_link_plus(array('order_by' => 'post_title')); ?> 
</ul> 
+0

planlıyorsanız bazı sınırlamalar olabilir. Çok sağol dostum. – Cthulhu

+0

Bu eklenti birkaç yıl içinde güncellenmedi, ancak yine de harika çalışıyor! Birisi tekrar test etmeli, böylece wp yöneticisindeki kurulum seçeneklerine geri dönebilir. Wp sitesinden yeniden yüklemem gerekiyordu. –

0

, hala çalışıyor emin değilim .: ör peşinde olduğun yapar gibi görünüyor. Olmaması durumunda, işlevlerinize eklenebilecek I came up with a solution. Umarım yardımcı olur!

3

Sen get_adjacent_post işlevinde filtreleri kullanarak bunu yapabilirsiniz. functions.php dosyasında

ekleyin: Eğer

add_filter('get_previous_post_sort', 'mytheme_previous_post_orderby_name', 10, 1); 
add_filter('get_next_post_sort', 'mytheme_next_post_orderby_name', 10, 1); 

add_filter('get_previous_post_where', 'mytheme_previous_post_where_name', 10); 
add_filter('get_next_post_where', 'mytheme_next_post_where_name', 10); 

the_post_navigation(); 

remove_filter('get_previous_post_sort', 'mytheme_previous_post_orderby_name', 10); 
remove_filter('get_next_post_sort', 'mytheme_next_post_orderby_name', 10); 
remove_filter('get_previous_post_where', 'mytheme_previous_post_where_name', 10); 
remove_filter('get_next_post_where', 'mytheme_next_post_where_name', 10); 

: Bir sonraki/önceki mesajlar fonksiyonlarını bağlantı aramadan önce

function mytheme_previous_post_orderby_name($orderby){ 
    return "ORDER BY p.post_title DESC LIMIT 1"; 
} 
function mytheme_previous_post_where_name(){ 
    global $post, $wpdb; 
    return $wpdb->prepare("WHERE p.post_title < %s AND p.post_type = %s AND (p.post_status = 'publish' OR p.post_status = 'private')", $post->post_title, $post->post_type); 
} 
function mytheme_next_post_orderby_name($orderby){ 
    return "ORDER BY p.post_title ASC LIMIT 1"; 
} 
function mytheme_next_post_where_name(){ 
    global $post, $wpdb; 
    return $wpdb->prepare("WHERE p.post_title > %s AND p.post_type = %s AND (p.post_status = 'publish' OR p.post_status = 'private')", $post->post_title, $post->post_type); 
} 

Ardından single.php sayfasında filtreler eklemek Belirli bir post_type için kontrol etmek istediğinizde, ekleme filtresi bölümü etrafında bir tane ekleyebilirsiniz:

if($post->post_type == 'my_custom_post_type'){ 
    add_filter(...); 
    the_post_navigation(); 
    remove_filter(...); 
} 

veya post_type özel bir single.php dosyasını kullanabilirsiniz!

Bu

benim için çok çalıştı, ama sen ... Aynı dönemde mesajların bunu birleştirmek mükemmel olduğunu

+1

Danbrellis'in yanıtında eksik bir kesme işareti var. Bu benim ilk hesabım olduğu ve yorum yapmak için yeterli sayıda temsilcisi olmadığı için yorum yapamam. remove_filter ('get_previous_post_sort', mytheme_previous_post_orderby_name ', 10); 'Remove_filter (' get_previous_post_sort ',' mytheme_previous_post_orderby_name ', 10) olmalıdır; '(Ancak, bu düzeltme ile bile, bu çalışmayı başaramıyorum) – plumbinator

+0

bunu yakaladığınız için teşekkürler. yaklaşıyor musun Örnek kodunuz varsa, bir göz atmaktan mutluluk duyarım. – danbrellis