Passare e recuperare query varia in wordpress


16

Ho due pagine di autori, una mostra circa 5 post. Quindi sto provando a configurare un'altra pagina che sarà tutti i loro post. Ho creato un modello chiamato moreauthorposts.php e sto cercando di passare la variabile dell'autore a questa pagina. Il problema è se passo dominio.com/more-author-posts?author=johndoe viene rimosso. Come posso recuperare questo valore? Questo è possibile anche in WordPress? So che WP Rewrite sta sollevando la mia struttura URL in qualche modo non ne sono sicuro.

Ho provato:

get_query_var('author')

e ho provato a leggere questo ma non ho avuto fortuna:

http://codex.wordpress.org/Query_Overview

Suggerimenti?

Grazie.

Risposte:


21

Sono quasi sicuro che authorsia integrato, quindi usa qualcosa di simile author_more. Per prima cosa dovrai aggiungere quel var query_vars. Esempio:

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

Quindi sul tuo more-author-posts.phpmodello chiamalo così:

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

Aggiornare

Funziona nel seguente esempio / caso d'uso URl:

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

Ma se vuoi usarlo come URl di fantasia, devi aggiungere una regola di riscrittura:

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

Ora puoi usarlo in questo modo

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

Ok, quindi ho aggiunto la query vars in Functions.php. Quindi ho aggiunto l'altro codice ai miei post più autore. Quale sarebbe la struttura URL corretta per passarli? So che il paging usa il formato di / page / 2 ma fare più post-autore / more_author / johndoe non sembra funzionare?
codeisforeva,

ho aggiornato la risposta
Bainternet,

Il problema è che non sto cercando di passare i var a index.php. Sto cercando di passarli al modello personalizzato che ho sviluppato poiché sembra completamente diverso dall'indice. Quindi, se passo valori a moreauthor.php? Author_more = johndoe .. questo sembra non funzionare. Stai facendo qualcosa di sbagliato qui?
codeisforeva,

@ בניית אתרים sembra una risposta molto chiara! @codeisforeva Non dovresti chiamare direttamente il file modello, vero? index.php è solo il file root di wordpress, ogni regola di riscrittura dovrebbe passare da lì.
goldenapples,

1
@codeisforeva: index.phpla regola di riscrittura è index.phpnella directory principale di WordPress, non index.phpnel file modello. Puoi comunque scegliere quale modello visualizzare, agganciandoti al template_includefiltro.
Jan Fabry,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.