Wordpress'te sorgu iletme ve alma


16

İki yazar sayfam var, biri yaklaşık 5 gönderi gösteriyor. Sonra tüm yayınları olacak başka bir sayfa kurmaya çalışıyorum. Moreauthorposts.php adlı bir şablon oluşturdum ve yazar değişkenini bu sayfaya geçirmeye çalışıyorum. Etki alanı.com/more-author-posts?author=johndoe geçerse ben çıkarılır. Bu değeri nasıl alabilirim? Wordpress'te bu mümkün mü? WP Rewrite URL yapısı benim bir şekilde emin değilim kriko biliyorum.

Denedim:

get_query_var('author')

ve bunu okumaya çalıştım ama hiç şansım yoktu:

http://codex.wordpress.org/Query_Overview

Öneriler?

Teşekkürler.

Yanıtlar:


21

Neredeyse authoryerleşik olduğundan eminim , bu yüzden böyle bir şey kullanın author_more. Önce bu var öğesini eklemeniz gerekecek query_vars. Misal:

// add `author_more` to query vars
add_filter( 'init', 'add_author_more_query_var' );
function add_author_more_query_var()
{
    global $wp;
    $wp->add_query_var( 'author_more' );
}

Sonra more-author-posts.phpşablonunuzda şöyle deyin:

if ( get_query_var( 'author_more' ) )
{
    // do your stuff
}

Güncelleme

Bu aşağıdaki URl örneğinde / kullanım durumunda çalışır:

http://example.com/index.php?author_more=value

Ancak bunu süslü URl olarak kullanmak istiyorsanız, bir yeniden yazma kuralı eklemeniz gerekir:

add_action('init','add_author_more_rewrite_rule');
function add_author_more_rewrite_rule()
{
    add_rewrite_rule(
        'more-author-posts/(\d*)$',
        'index.php?author_more=$matches[1]',
        'top'
    );
}

Şimdi bu şekilde kullanabilirsiniz

http://example.com/more-author-posts/value

Tamam böylece sorgu vars fonksiyonları.php ekledi. Sonra diğer kodu daha fazla yazar gönderilerime ekledim. Bunları iletmek için doğru URL yapısı ne olabilir? Sayfalanmış / sayfa / 2 biçimini kullandığını biliyorum ama daha yazar-mesajları / more_author / johndoe 'çalışmıyor gibi görünüyor?
codeisforeva

cevabı güncelledim
Bainternet

Sorun im var. index.php geçirmeye çalışmıyorum. Im dizin tamamen farklı görünüyor beri geliştirdiğim özel şablonu onları geçmeye çalışıyorum. Bu yüzden değerleri moreauthor.php? Burada yanlış bir şey mi yapıyorsunuz?
codeisforeva

@ בניית אתרים çok açık bir cevap gibi görünüyor! @codeisforeva Şablon dosyasını doğrudan çağırmamalısınız, değil mi? index.php sadece wordpress'in kök dosyasıdır, her yeniden yazma kuralı oradan geçmelidir.
goldenapples

1
@codeisforeva: Yeniden index.phpyazma kuralı index.phpWordPress'in kök dizinindedir, index.phpşablon dosyanızdaki değil. Yine de, template_includefiltreye asarak hangi şablonun görüntüleneceğini seçebilirsiniz .
Jan Fabry
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.