Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

WP: как правильно использовать данные массива $post в виджетах?

Привет!

Необходимо выполнить любой php код через виджет WP. В качестве виджетов скачал и поставил 'Enhanced Text' и 'PHP-код'.

В теле виджета выполняю код (работает):
<?php
global $post;
print_r($post);
?>

Пробую запросить данные о странице, такие как $post['ID'] и $post['post_title']:
<?php
global $post;
echo $post['ID'];
echo $$post['post_title'];
?>

В итоге получаю ошибку. Если показать весь массив $post (print_r($post)), то ошибок нет, а если показать хотя-бы 1 элемент данного массива (echo $post['ID']), то сразу получаю ошибку. При подобных действиях внутри шаблона страницы - все отлично работает, а вот в виджете ошибка...
Что делать?

Спасибо!

Текст ошибки:
Fatal error: Uncaught Error: Cannot use object of type WP_Post as array in C:\domains\x\wp-content\plugins\enhanced-text-widget\enhanced-text-widget.php(57) : eval()'d code:4 Stack trace: #0
  • Вопрос задан
  • 213 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
Привет.

В переменной $post объект.
<?php
$post = get_post();
echo $post->ID;
echo $post->post_title;
?>

Если нужен массив:
<?php
$post = get_post(null, ARRAY_A);
echo $post['ID'];
echo $post['post_title'];
?>


Документация по функции get_post.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы