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.