Passant et la récupération de requête vars dans wordpress
-
16-10-2019 - |
Question
J'ai deux auteurs pages, une affiche sur 5 messages. Ensuite, je suis en train d'installer une autre page qui sera tous leurs postes. J'ai créé un modèle appelé moreauthorposts.php et je suis en train de passer la variable d'auteur à cette page. Le problème est si je passe domain.com/more-author-posts?author=johndoe il se dépouillé. Comment puis-je récupérer cette valeur? Est-ce même possible wordpress? Je sais que WP est Rewrite jacking ma structure d'URL, je suis en quelque sorte pas sûr.
J'ai essayé:
get_query_var('author')
et essayé de lire cela, mais n'a pas eu de chance:
http://codex.wordpress.org/Query_Overview
Suggestions?
Merci.
La solution
Je suis presque sûr que author
est intégré, donc utiliser quelque chose comme author_more
. Vous aurez besoin d'ajouter que var à query_vars
premier. 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 appel modèle more-author-posts.php
comme ceci:
if ( get_query_var( 'author_more' ) )
{
// do your stuff
}
Mise à jour
Cela fonctionne dans l'exemple suivant URl / cas d'utilisation:
http://example.com/index.php?author_more=value
Mais si vous voulez l'utiliser comme fantaisie URl, 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