Intereting Posts
Получить запрос категории не работает в function.php Простой seo-friendly персонализированный url $ _GET переписывает с htaccess Добавить заголовки меню в подменю WordPress Регистрация и логин SMS Невозможно загрузить статическую главную страницу на домашнем URL-адресе Можно ли предварительно определить набор атрибутов по категориям? WordPress обертывает теги span в теги p Пользовательский почтовый пользовательский запрос – показать все сообщения почему черновики возвращаются как часть wp_query? Разрешить регистрацию только через социальное соединение как удалить метатет из категории wordpress archive и изменить его отображение Удалить стрелки из предыдущей и следующей ссылки Как включить enqueue_script для работы с зарегистрированным пользователем? Миниатюры миниатюр статьи и извлекают их непосредственно из базы данных Где я могу изменить файл панели администратора

Вызов пользовательских полей для страниц (не сообщений)

Я пытаюсь разместить небольшой код в файле header.php . Я хочу получить настраиваемое значение поля.

Я пытаюсь вызвать пользовательские поля с текущей страницы за пределами цикла, кстати.

У меня нет проблем с этим, когда мне нужно получать значения пользовательских полей из сообщений, но я не могу сделать это для страниц.

Вот мой код:

 global $wp_query; $postid = $wp_query->post->ID; echo get_post_meta($postid, 'teaser-text', true); 

Я не уверен, что я делаю неправильно. Я попытался изменить $wp_query->post->ID; к этому $wp_query->page->ID; без успеха.

Любая помощь приветствуется, спасибо!

попробуйте использовать

 get_metadata('post', $postid, 'teaser-text, true); 

эти два на самом деле такие же. не должно иметь никакого значения. раньше я дал неправильные аргументы. var_dump () покажет вам, что он на самом деле получает. убедитесь, что идентификатор верен, «тизер-текст» существует. Вы также можете попробовать использовать другое мета-имя (только для целей тестирования).

Это не проверено, но попробуйте:

 if ( is_page() ){ $page_id = get_queried_object_id(); $meta = get_post_meta( $post_id, 'teaser-text',true) } 

Вам нужно либо запустить цикл, либо перемотать его назад:

 $wp_query->the_post(); // Now $post is the first post (page) in the loop echo get_post_meta( $post->ID, 'teaser-text', true );` $wp_query->rewind; // This rewinds the query so the loop functions normally 

Или просто вытащите идентификатор из первого сообщения в запросе:

 echo get_post_meta( $wp_query->posts[0]->ID, 'teaser-text', true );