Lulus dan mengambil kueri vars di wordpress

16

Saya memiliki dua halaman penulis, satu menampilkan sekitar 5 posting. Lalu saya mencoba untuk mengatur halaman lain yang akan menjadi semua posting mereka. Saya telah membuat templat yang disebut moreauthorposts.php dan saya mencoba meneruskan variabel pembuat ke halaman ini. Masalahnya adalah jika saya melewati domain.com/more-author-posts?author=johndoe itu akan dihapus. Bagaimana saya dapat mengambil nilai ini? Apakah ini bahkan mungkin di wordpress? Saya tahu WP Rewrite mendongkrak struktur URL saya, entah bagaimana, saya hanya tidak yakin.

Saya sudah mencoba:

get_query_var('author')

dan mencoba membaca ini tetapi tidak berhasil:

http://codex.wordpress.org/Query_Overview

Saran?

Terima kasih.

codeisforeva
sumber

Jawaban:

21

Saya hampir yakin itu authorbuilt-in, jadi gunakan sesuatu seperti author_more. Anda harus menambahkan var itu query_varsterlebih dahulu. Contoh:

// 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' );
}

Kemudian pada more-author-posts.phptemplat Anda panggil seperti ini:

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

Memperbarui

Ini berfungsi dalam contoh / kasus penggunaan URl berikut:

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

Tetapi jika Anda ingin menggunakan ini sebagai URl mewah, Anda perlu menambahkan aturan penulisan ulang:

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'
    );
}

Sekarang Anda bisa menggunakannya seperti ini

http://example.com/more-author-posts/value
Bainternet
sumber
Ok jadi saya menambahkan vars permintaan ke functions.php. Kemudian menambahkan kode lain ke posting penulis saya yang lebih banyak. Apa yang akan menjadi struktur URL yang benar untuk melewati ini? Saya tahu bahwa paged menggunakan format / halaman / 2 tetapi melakukan lebih banyak-penulis-posting / more_author / johndoe tampaknya tidak berfungsi?
codeisforeva
saya memperbarui jawabannya
Bainternet
Masalahnya adalah saya tidak mencoba untuk melewatkan vars ke index.php. Saya mencoba meneruskannya ke template khusus yang saya kembangkan karena terlihat sangat berbeda dari indeks. Jadi, jika saya meneruskan nilai ke moreauthor.php? Author_more = johndoe .. sepertinya tidak berhasil. Melakukan sesuatu yang salah di sini?
codeisforeva
@ בניית אתרים sepertinya jawaban yang sangat jelas! @codeisforeva Anda seharusnya tidak memanggil file template secara langsung, bukan? index.php hanyalah file root dari wordpress, setiap aturan penulisan ulang harus melalui sana.
goldenplate
1
@codeisforeva: Aturan index.phpdalam penulisan ulang adalah index.phpdi direktori root WordPress, bukan index.phpdi file template Anda. Anda masih dapat memilih templat mana yang akan ditampilkan, dengan mengaitkannya ke template_includefilter.
Jan Fabry