Как редактировать содержимое dynamic_sidebar()?
Я хорошо знаю PHP, но я новичок в WordPress. Мне достался незавершенный сайт WordPress. На нём есть статическая главная страница с формой подписки Aweber. Я попытался разобраться в установленной теме и в файле home.php
обнаружил:
<div class="home-infobox">
<?php if ( is_active_sidebar( 'homepage-infobox' ) ) : ?>
<?php dynamic_sidebar( 'homepage-infobox' ); ?>
<?php endif; ?>
</div>
Когда я просматриваю исходный код главной страницы, форма подписки Aweber появляется точно внутри <div class="home-infobox">
. Мне нужно внести изменения в форму как первый шаг, и я пытался понять, откуда берется содержимое? Из базы данных или из каких-то PHP файлов, я совершенно не понимаю.
Пожалуйста, помогите мне разобраться в этом.

- Содержимое
dynamic_sidebar
берется из виджетов, связанных с этой "Боковой панелью" (также известной как "Область виджетов") вwp-admin
, как ответил @s_ha_dum. Нет отдельного файла шаблона для самой боковой панели. Перейдите в/wp-admin/widgets.php
в разделеВнешний вид
->Виджеты
и найдите область виджетов с названиемhomepage-infobox
. Здесь вы сможете добавлять/удалять виджеты и, возможно, изменять их содержимое. - Проверьте файлы вашего плагина и темы, возможно
functions.php
, на наличие функцииregister_sidebar
с идентификаторомhomepage-infobox
. В объявленииregister_sidebar
может быть код, отвечающий за отображение.
Смотрите также:

Перед вами, как следует из названия функции, находится динамическая боковая панель. Содержимое, которое заполняет эту панель, должно поступать из виджетов боковой панели, некоторые из них предоставляются ядром WordPress, но многие (большинство) добавляются плагинами и темами. Виджеты могут получать данные из базы данных, из внешних источников, таких как RSS-ленты, или могут быть жёстко запрограммированы для отображения статических данных. Это зависит от конкретного виджета. Если вы посмотрите на разметку внутри боковой панели для отдельных элементов, то обычно сможете определить, какой плагин создаёт виджет. Проверьте CSS-классы (class
) и идентификаторы (id
).

Спасибо, у Aweber есть собственный плагин, но он не установлен на сайте. RSS-ленты не подходят, так как сайт может работать на автономной машине. Так что либо это статический контент, либо он берется из базы данных. Там есть теги <img>
, которые содержат изображения из папки темы. Классы и идентификаторы CSS находятся в style.css темы, я попытался выполнить полный поиск по папке для этих тегов, но они были обнаружены ТОЛЬКО в style.css, ни в каком другом файле. Значит ли это, что контент берется из базы данных? Можете ли вы предложить какие-то конкретные таблицы для проверки?

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

Возможно, его нет в базе данных. Скорее всего, он находится в файле функций темы, который вы ещё не проверили.
Вам нужно проверить файл functions.php
в папке темы. Либо же код для вашего динамического сайдбара может находиться в файле includes/theme-init.php
.
