Nie mogę pobrać identyfikatora autora postu poza pętlę, aby funkcja get_the_author_meta działała. Do tej pory próbowałem różnych podejść:
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;
Potrzebuję ID autora, aby przekazać go:
$address = get_the_author_meta('user_email', $author_id);
Jakieś sugestie?
Odpowiedzi:
Najprostszym i najprostszym sposobem na wyprowadzenie ID autora posta poza pętlę, jeśli znasz ID posta, jest użycie podstawowej funkcji WordPress
get_post_field()
.Jeśli nie znasz jeszcze identyfikatora postu strony, na której jesteś, to od WP 3.1 najłatwiej jest skorzystać z funkcji
get_queried_object_id()
(poszukaj jej na liście metod), która działa nawet poza pętlą.Jeśli nie działają one dla Ciebie, podaj bardziej szczegółowe wyjaśnienie, gdzie próbujesz uruchomić swój kod, a my możemy zobaczyć, czy możemy jeszcze pomóc.
źródło
Oto jak uzyskać i uzyskać identyfikator autora poza pętlą WordPress:
Możliwe jest dla nas
the_author_meta
:źródło
Zależy gdzie jesteś. Jeśli jesteś na pojedynczej stronie (np. Pokazujesz tylko jeden {{Wstaw tutaj typ postu}}), możesz użyć
get_queried_object
, który pobierze obiekt postu.Jeśli jesteś gdziekolwiek indziej, możesz użyć
$wp_query
obiektu globalnego i sprawdzić jego$posts
właściwość. Powinno to również działać na pojedynczych stronach.Możesz także po prostu „fałszywie uruchomić” pętlę i przewinąć ją do tyłu, aby pobrać identyfikator autora. Nie spowoduje to żadnych dodatkowych trafień w bazie danych itp. WordPress pobiera wszystkie posty naraz (w momencie pisania).
rewind_posts
po prostu resetuje bieżący obiekt postu (globalny$post
) na początek tablicy. Minusem jest to, że może to spowodować, żeloop_start
akcja zacznie strzelać wcześniej niż chcesz - nie jest to wielka sprawa, po prostu coś, o czym należy pamiętać.źródło
Wygląda na to, że działa poza pętlą, może to pomoże.
Możesz także ręcznie ustawić identyfikator posta i pobrać w ten sposób:
Zmień ID na, aby ręcznie wysłać identyfikator dla dostępu poza pętlą.
Nie świetne rozwiązania, ale mam nadzieję, że to pomaga.
źródło
Miałem ten sam problem, gdy próbowałem utworzyć widżet, który wyświetlałby polecane posty z informacjami o autorze.
Skorzystałem z niektórych wskazówek z 2. wskazówki @chrisguitarguy.
Mój kod wyglądał tak:
źródło
Aby uzyskać i pobrać identyfikator autora poza pętlą:
Następnie użyj
pamiętaj, jeśli pobierasz identyfikatory postów w pętli i uzyskujesz dostęp do zewnętrznej pętli autora, to dostarczy tylko dane ostatniego identyfikatora postu w pętli
źródło
Mam nadzieję, że to pomoże:
źródło
Dlaczego nie użyjesz metody_autora?
Można tego użyć w pętli
źródło