Passer et récupérer des vars de requête dans wordpress

14

J'ai deux pages d'auteurs, une affiche environ 5 messages. Ensuite, j'essaie de configurer une autre page qui contiendra tous leurs messages. J'ai créé un modèle appelé moreauthorposts.php et j'essaie de transmettre la variable auteur à cette page. Le problème est que si je passe domain.com/more-author-posts?author=johndoe, il est supprimé. Comment puis-je récupérer cette valeur? Est-ce même possible dans wordpress? Je sais que WP Rewrite modifie ma structure d'URL d'une manière ou d'une autre. Je ne suis tout simplement pas sûr.

j'ai essayé:

get_query_var('author')

et essayé de lire ceci mais sans aucune chance:

enlace

Des suggestions?

Merci.

    
posée codeisforeva 31.01.2011 - 19:48

1 réponse

20

Je suis presque sûr que author est intégré, utilisez donc quelque chose comme author_more . Vous devrez d'abord ajouter var à query_vars . Exemple:

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

Ensuite, sur votre modèle more-author-posts.php , appelez-le comme suit:

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

Mettre à jour

Ceci fonctionne dans l'exemple d'URL / cas d'utilisation suivant:

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

Mais si vous souhaitez utiliser cette URL comme une fantaisie, vous devez ajouter une règle de réécriture:

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

Maintenant, vous pouvez l'utiliser comme ceci

http://example.com/more-author-posts/value
    
réponse donnée Bainternet 31.01.2011 - 20:02

Lire d'autres questions sur les étiquettes