Почему the_content() не отображает содержимое?

2 мар. 2012 г., 04:54:32
Просмотры: 59.3K
Голосов: 7

На моем сайте WordPress функция the_content() не показывает содержимое, но $post->post_content отображает его корректно. Почему это происходит и как мне снова использовать the_content()?

5
Комментарии

Какой код окружает это? Вы в цикле?

mor7ifer mor7ifer
2 мар. 2012 г. 04:58:36

Какую тему вы используете? Если это кастомная тема, то нам нужно увидеть пользовательский код для соответствующего файла шаблона.

Chip Bennett Chip Bennett
2 мар. 2012 г. 05:24:50

Я столкнулся с такой же проблемой. Думаю, она возникает из-за другого WP_Query, выполненного перед the_content().

ifdion ifdion
2 мар. 2012 г. 13:10:41

Со мной такое случилось при обновлении до WP5

Fanky Fanky
28 июн. 2019 г. 14:59:48

Не понимаю, почему это помечено как маловероятное помочь будущим посетителям - это хороший вопрос с полезными ответами. Он не кажется более "чрезвычайно узким", чем любой другой вопрос на WordPress Stack Exchange.

JohnG JohnG
31 июл. 2020 г. 15:10:28
Все ответы на вопрос 3
6
10

Для использования функции "the_content()" необходимо находиться внутри цикла (The Loop).

Смотрите здесь: http://codex.wordpress.org/Function_Reference/the_content

"Отображает содержимое текущей записи. Этот тег должен находиться внутри The_Loop."

2 мар. 2012 г. 05:00:10
Комментарии

это single.php, и раньше работало

srisar srisar
2 мар. 2012 г. 05:03:35

но тогда как работает $post->post_content? плюс, the_title() тоже работает...

srisar srisar
2 мар. 2012 г. 05:04:15

Даже single.php должен содержать The Loop для получения содержимого и значений произвольных полей. Что касается the_title() [если я не ошибаюсь], это всегда определённое поле. Не может быть опубликованной записи без введённого заголовка. Технически и с точки зрения WP, the_title() тоже должен быть внутри The Loop.

Если вы против использования The Loop и $post->post_content работает, вы всегда можете использовать функцию apply_filters() для вывода содержимого. http://codex.wordpress.org/Function_Reference/the_content#Alternative_Usage

The Z Man The Z Man
2 мар. 2012 г. 05:09:23

спасибо за ваш ответ, мне просто было интересно, почему это перестало работать, ведь раньше работало. в любом случае спасибо, если найду свою ошибку, обязательно напишу здесь, чтобы это могло помочь другим.

srisar srisar
2 мар. 2012 г. 05:14:16

Без проблем, srisar! Удачи в дальнейшем. Если найдете лучшее решение или ответ, да, пожалуйста, напишите об этом здесь :)

The Z Man The Z Man
2 мар. 2012 г. 05:18:08

жаль, что это больше не часть страницы документации...

Benjamin Benjamin
12 нояб. 2018 г. 18:38:37
Показать остальные 1 комментариев
0

Если это работало раньше, вероятно, какой-то плагин подключается к фильтру the_content. Отключайте плагины по одному, чтобы проверить, решит ли это проблему. Затем проверьте callback-функции для фильтра the_content.

Вы можете увидеть все callback-функции для the_content, добавив следующий код:

add_action('template_redirect', 'wpse_44152_template_redirect');
function wpse_44152_template_redirect(){
    global $wp_filter;
    print_r($wp_filter['the_content']);
}

Найдите каждую из перечисленных функций, выполнив поиск по коду в вашем редакторе. Callback-функция фильтра ОБЯЗАНА возвращать данные $content обратно, чтобы the_content() работал правильно.

2 мар. 2012 г. 06:08:05
0

вы можете проверить файл functions.php в папке вашей темы, чтобы найти, не делает ли какая-то функция что-то с функцией "the_content". В моей теме была такая же проблема, и я обнаружил, что одна из функций содержала ошибку, из-за которой "the_content" не работала.

найдите в вашем functions.php текст, содержащий "the_content",

26 нояб. 2012 г. 11:08:41