Какой самый идиоматический способ позволить клиентам редактировать фразы в 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 сделать это?

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

Связаны ли баннеры с каждой страницей? Если это так, я бы использовал пользовательское поле или просто метабокс, который пользователь мог бы редактировать или вводить информацию на странице, которую вы хотите, чтобы баннер отображался. Поле будет отображаться ниже содержимого в редакторе страниц. Тогда вы в своем 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/ (примеры и использование кода)

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

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

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