Wordpress - приложение УЖАСНОЕ , с которого можно научиться программировать. Он использует эти глобальные функции, которые «просто работают», но они выполняют очень специфические задачи «внутри« Цикла »». Как я уже сказал, это ужасный пример того, каким должен быть хороший код.
К счастью (для вас) есть другие функции, которые просто возвращают искомую часть. Вместо того, чтобы писать только то, что вам нужно, вы можете прочитать полный список здесь . Позаботьтесь о том, чтобы записать, что должно быть в мифическом цикле и которое вы можете использовать где угодно.
Как это бывает, есть еще больше способов получить заголовок, но я действительно думал, что для этого примера вы сделаете что-то вроде:
$this_post = get_post($post); // I *think* $post is the post ID inside the loop though I could be wrong
echo $this_post->post_title;
Но, как говорит другой автор (правильно), вы можете использовать довольно простую функцию wp_title (), чтобы получить текущий заголовок цикла.
Это возвращает меня к желанию объяснить, почему изучение программирования на Wordpress - плохая идея. У них так много проклятых способов сделать то же самое, что почти невозможно удержать на вершине.
Блог - это действительно простой набор данных (даже более того, в случае WP, потому что он не полностью нормализован), но вместо одного способа вывода заголовка <?php echo $post->title; ?>
у вас есть множество способов, и все они делают слегка разные вещи. .
Если вы действительно хотите научиться программировать (вместо того, чтобы разбираться со всем дерьмом, которым являются внутренности WP), создание простого движка блога довольно быстро и увлекательно ... Это, безусловно, то, как многие люди увлекаются новый язык или рамки.
А если вы действительно хотите повеселиться, взгляните на Джанго.
Достаточно разглагольствования в Wordpress. Если в будущем вы будете бороться с чем-то подобным, у которого не будет 100 способов сделать это, я действительно не рекомендовал бы захват выходного буфера. Он использует целый набор ресурсов для чего-то относительно простого.
Самый простой способ может быть простым: взять источник исходной функции, вставить его в новую функцию и заменить echo
на return
.
Просто обратите внимание, что может быть некоторая возможность подключения к базе данных, которая может преждевременно завершить возврат ... Так что если echo не последний оператор, вместо того, чтобы возвращаться прямо здесь, сохраните строку как переменную и верните в конце функция.