Je ne peux pas obtenir l'ID de l'auteur du post en dehors de la boucle pour faire fonctionner get_the_author_meta. Jusqu'à présent, j'ai essayé différentes approches:
1.
$author_id=$post->post_author;
2.
global $post;
$author_id=$post->post_author;
3.
$post_tmp = get_post($post_id);
$author_id = $post_tmp->post_author;
4.
$author_id = $posts[0]->post_author;
J'ai besoin de l'ID de l'auteur pour le transmettre à:
$address = get_the_author_meta('user_email', $author_id);
Aucune suggestion?
Réponses:
La façon la plus simple et la plus directe d'obtenir l'ID de l'auteur du post en dehors de la boucle, si vous connaissez l'ID du post, est d'utiliser la fonction principale de WordPress
get_post_field()
.Si vous ne connaissez pas encore l'ID de publication de la page sur laquelle vous vous trouvez, alors depuis WP 3.1, la chose la plus simple à faire est d'utiliser la fonction
get_queried_object_id()
(recherchez-la dans la liste des méthodes) qui fonctionne même en dehors de la boucle.Si ceux-ci ne fonctionnent pas pour vous, veuillez donner une explication plus détaillée de l'endroit où vous essayez d'exécuter votre code et nous pouvons voir si nous pouvons vous aider davantage.
la source
Voici comment obtenir et obtenir l'ID de l'auteur en dehors de la boucle WordPress:
Il nous est alors possible
the_author_meta
:la source
Cela dépend de l'endroit où vous vous trouvez. Si vous êtes sur une page singulière (par exemple, ne montrant qu'un seul {{Insérer le type de publication ici}}), vous pouvez utiliser
get_queried_object
, qui récupérera l'objet de publication.Si vous êtes ailleurs, vous pouvez utiliser l'
$wp_query
objet global et vérifier sa$posts
propriété. Cela devrait également fonctionner sur des pages singulières.Vous pouvez également simplement "démarrer faux" la boucle et la rembobiner pour récupérer l'ID de l'auteur. Cela n'encourra pas de hits de base de données supplémentaires ou similaires. WordPress récupère tous les articles à la fois (au moment de la rédaction).
rewind_posts
réinitialise simplement l'objet courant (global$post
) au début du tableau. L'inconvénient est que cela peut entraîner le déclenchement de l'loop_start
action bien plus tôt que vous le souhaitez - pas une grosse affaire, juste quelque chose à savoir.la source
Il semble que cela fonctionne en dehors de la boucle, peut-être que cela vous aidera.
Vous pouvez également définir manuellement l'ID de la publication et la saisir de cette façon:
Modifiez l'ID pour publier l'ID manuellement pour un accès hors de la boucle.
Pas de bonnes solutions, mais j'espère que cela aide.
la source
J'ai eu le même problème ici en essayant de créer un widget qui affiche les articles en vedette avec des informations sur l'auteur.
J'ai utilisé certaines des astuces de @chrisguitarguy 2nd tip.
Mon code ressemblait à ceci:
la source
Pour obtenir et obtenir l'ID de l'auteur en dehors de la boucle:
Ensuite, utilisez
rappelez-vous que si vous récupérez l'id de messages en boucle et accédez à la boucle côté auteur, alors il ne fournira que les données du dernier id de message en boucle
la source
J'espère que cela vous aidera:
la source
Pourquoi n'utilisez-vous pas the_author_meta
Cela peut être utilisé dans la boucle
la source