Intereting Posts
Какова настройка по умолчанию для включения <script> в сообщение Лучший способ загрузки WordPress Bootstrap Как я могу удержать связанные таксономии (категории, теги) с сообщением при преобразовании в пользовательский тип сообщения? Массовое действие для обновления пользователем Как отображать миниатюру первого сообщения в качестве фонового изображения виджета? нужна определенная помощь с помощью флажков (выбор / отмена выбора рекомендуемых сообщений) исключить категорию из get_posts? Как я могу сделать доступным для всего сайта контент, например нижний колонтитул Как я могу развернуть свой сайт InstantWP на веб-сайте? update_post_meta не работает в действии 404 рекомендаций регулярного выражения API настроек – добавление полей настроек динамически? Как создать роль клона в wordpress Как перевести форму контакта 7 с помощью qTranslate? Как связать тип сообщения с шаблоном в Мастерплане?

Какой самый идиоматический способ позволить клиентам редактировать фразы в HTML?

Я добавил HTML-баннеры в начало некоторых страниц на сайте клиента. Он хочет внести изменения в текстовые фразы на этих баннерах без необходимости редактировать любой HTML. Как мне это открыть?


Раньше я просто создал набор страниц, которые я вставляю в свои HTML-баннеры, используя следующий код:

<div class="banner-top"> <h1><?php echo $about_us_phrase->post_title; ?></h1> <p><?php echo apply_filters( 'the_content', $about_us_phrase->post_content ); ?></p> </div> 

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

Какой способ WordPress-y сделать это?

Связаны ли баннеры с каждой страницей? Если это так, я бы использовал пользовательское поле или просто метабокс, который пользователь мог бы редактировать или вводить информацию на странице, которую вы хотите, чтобы баннер отображался. Поле будет отображаться ниже содержимого в редакторе страниц. Тогда вы в своем single.php добавили бы код, который вы указали выше, чтобы заключить все, что указано в настраиваемом поле.

Если баннеры НЕ относятся к отдельным страницам. Я бы сделал настраиваемый тип сообщений «баннеры», а затем их случайным образом отображали на страницах, вставив вызов для CPT в файле single.php.

Вы можете использовать плагин для создания полей, или эти ссылочные ссылки помогут вам начать создавать свои собственные:

https://codex.wordpress.org/Plugin_API/Action_Reference/add_meta_boxes (объяснение и т. д.)

https://developer.wordpress.org/reference/functions/add_meta_box/ (примеры и использование кода)

Создайте пользовательскую боковую панель для баннера, затем добавьте из темы любой код, который вы не хотите редактировать или коснитесь, наконец, попросите их использовать простой текстовый виджет для добавления / изменения / удаления текста.

Таким образом, если текстовый виджет (например, баннер не используется) отсутствует, баннер вообще не будет отображаться.

Для более сложного контента я также хотел бы использовать пользовательский тип сообщения и настраиваемые поля.