Intereting Posts
Раздел «Перемещение платежей» в WooCommerce Checkout приводит к сбоям Как вмешаться в поиск по умолчанию, чтобы выполнить поиск в пользовательских полях? Являются ли все идентификаторы уникальными? Сообщение от front-end с типами сообщений, категориями и таксономиями Почему моя переменная comment_form не работает? Как я могу аутентифицировать пользователей WordPress автоматически в Moodle? Таблица WPDB не существует Создание короткого кода отфильтрованного количества комментариев по роли пользователя Как добавить / сохранить пользовательское поле в пользовательских настройках / профиле «Список флажков» Расширение поиска WordPress, чтобы включить выдержки и таксономии? Перемещение сайта WordPress из MAMP в cPanel – как? От многих до многих отношений между двумя настраиваемыми типами сообщений Как переписать URL-адрес на другой переписанный URL-адрес без изменения адреса? Как защитить загрузки в многопользовательском режиме, если пользователь не вошел в систему? Выбор нескольких опций onclick

Лучший способ представить параметры для главной страницы в админ?

У меня есть сайт с пользовательской главной страницей home.php. Каков правильный способ представления редактируемых параметров домашней страницы в инструменте администратора?

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

ОБНОВЛЕНИЕ: представьте себе сайт с домашней страницей с рекламной рекламой (текстовой строкой), в которой мне нужно будет легко обновлять администраторов (не техников). Я пытаюсь понять, как представить экран в админ, который гласит: «Какой рекламный текст вы хотите на главной странице? [ _ __ _ __ _ __ _ ____ ]»? Я думал об этом с помощью виджета, но этот маршрут неуклюж и требует, чтобы я создал специальную боковую панель, чтобы удерживать единственный виджет. Каков наилучший способ приблизиться к этому?

Solutions Collecting From Web of "Лучший способ представить параметры для главной страницы в админ?"

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

Обычно я использую 3 способа решить эту проблему. Какой из них я выбрал? Это зависит от ситуации. Иногда я использую 2 из них одновременно.

1. Статическое решение для передней страницы.

Когда я могу установить статическую страницу в качестве первой страницы, я делаю это. Затем создайте front-page.php страницы front-page.php и используйте его, чтобы определить, как должна выглядеть страница на главной странице / на первой странице.

Чтобы отобразить / разрешить редактировать некоторые настраиваемые поля на этой странице, я использую плагин Advanced Custom Fields . Он позволяет определить настраиваемые поля, заданные для первой страницы (и многое другое). Затем я использую шаблон front-page.php чтобы показать эти значения настраиваемых полей, где они должны быть показаны.

Если некоторые из этих значений следует повторять на каждой странице (в нижнем колонтитуле, в заголовке и т. Д.), Я получаю эти значения из Домашней страницы следующим образом:

 $cf_value = get_post_meta( get_option('page_on_front'), '<CUSTOM FIELD NAME>', true ); 

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

2. Универсальное решение.

Другое решение, которое я использую, – это определение некоторых параметров темы. Это намного лучше, если вы хотите определить внешний вид страницы (логотип, фон и т. Д.), А не только контент (особенно если вы имеете в виду контент только на одной странице).

Обычно я использую плагин OptionTree . Но это не так сложно сделать самостоятельно.

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

3. Когда это содержимое всегда повторяется на других страницах

Иногда вам нужно показывать некоторые значения на каждой странице (или большинстве из них), а не только на домашней странице. Тогда «самое приятное» решение, я думаю, состоит в том, чтобы определить эти области как боковые панели и позволить пользователю редактировать их с помощью виджетов.

Если этот повторяющийся контент – это всего лишь одна строка (строка информации об авторских правах в нижнем колонтитуле и т. Д.), И она не будет изменена часто, я, вероятно, буду использовать решение 1. Но если это сложнее или будет часто изменяться, это решение лучше, я думаю.

Я бы предложил создать метабокс для шаблона страницы home.php. Это легко сделать с помощью плагина Advanced Custom Fields (ACF). Вы даже можете использовать «ACF Lite», если хотите создать их в своей теме, вместо использования плагина. Вот быстрый и простой способ реализовать именно то, что вы ищете.

  • Создайте настраиваемый метабокс, который отображается только на странице с файлом шаблона home.php.
  • Просто добавьте это в свой файл шаблона home.php и создайте собственный стиль.

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

  1. Установите плагин ACF и активируйте его. (Поиск расширенных пользовательских полей «Elliot Condon», вы можете сделать это через панель инструментов WordPress, или вы можете сделать это вручную из репозитория WordPress здесь: http://wordpress.org/plugins/advanced-custom-fields/
  2. Добавьте блок кода Labeled «functions.php» в файл «function.php» активной темы.

     if(function_exists("register_field_group")) { register_field_group(array ( 'id' => 'acf_home-page-promotional-text', 'title' => 'Home Page Promotional Text', 'fields' => array ( array ( 'default_value' => '', 'formatting' => 'none', 'key' => 'field_51c5184b7c590', 'label' => 'Promo Text', 'name' => 'promo_text', 'type' => 'text', 'instructions' => 'What promotional text would you like?', ), ), 'location' => array ( array ( array ( 'param' => 'page_template', 'operator' => '==', 'value' => 'home.php', 'order_no' => 0, 'group_no' => 0, ), ), ), 'options' => array ( 'position' => 'normal', 'layout' => 'no_box', // change 'no_box' to 'default' for box look. 'hide_on_screen' => array ( ), ), 'menu_order' => 0, )); } 
  3. Перейдите на главную страницу (на этой странице должен быть использован файл шаблона home.php Edit Page-> Attributes-> Template downdown).

  4. Перейдите в файл шаблона «home.php» и добавьте следующий код, чтобы отобразить содержимое настраиваемого метабокса, которому в этом случае присваивается «имя» «promo_text».

     <?php if( get_field('promo_text') ) { ?> <h3> <?php echo get_field('promo_text'); ?> </h3> <?php } ?> 

    Примечание: get_field – это функция из плагина ACF. Если вы предпочитаете использовать встроенную функцию WP, вы можете использовать: «get_post_meta ($ post_id, $ key, $ single);» вместо. Вот пример этого.

     <?php if( get_post_meta($post->ID, $'promo_text', true) ) { ?> <h3> <?php echo get_post_meta($post->ID, 'promo_text', true); ?> </h3> <?php } ?> 

Вот как это выглядит при редактировании главной страницы: введите описание изображения здесь Изображение большего размера

Теперь вы увидите метаболизм. Обратите внимание, что вы можете легко сделать это без плагина, вам просто нужно включить папку плагинов в папку темы и добавить include () в файл functions.php вашей активной темы.

Я очень рекомендую этот плагин … он очень интуитивно понятен и имеет много документации. Если вы используете этот плагин и var_dump (), вы можете быстро все выяснить.

Надеюсь, это поможет!

Трудно сказать из вашего вопроса, что именно вы делаете, но если вы используете API-интерфейс Options , то get_option принимает второй параметр для значений по умолчанию. Из Кодекса:

 $no_exists_value = get_option('no_exists_value'); var_dump($no_exists_value); /* ouput false */ $no_exists_value = get_option('no_exists_value','default_value'); var_dump($no_exists_value); /* output default_value */ 

Если вы используете API настройки темы , get_theme_mod , например get_option , также принимает второй параметр для ваших значений по умолчанию.

С помощью любой опции вам потребуется создать интерфейс. Если вы используете API-интерфейс параметров, тогда вы создаете страницу конфигурации add_menu_page и / или add_submenu_page или одну из этих связанных функций .

Если вы используете Настройщик тем, и я не уверен, соответствует ли это вашему проекту, существует целый набор функций и методов .

Если я правильно понял ваш вопрос, вы хотите создать панель параметров темы, чтобы администратор WordPress. может войти (например) «привет, мир!» в текстовом поле нажмите « Сохранить изменения» и на лицевой части веб-сайта «привет, мир!». будет отображаться везде, где вы решили назвать это в своем шаблоне.

Вы можете сделать это, используя API-интерфейс Options, о котором говорил s_ha_dum, но я предполагаю, что если вы считаете, что его ответ не содержит достаточно подробных сведений о том, что вы действительно имеете в виду, так это то, что это сложнее, чем вы надеялись.

Поэтому мой совет для вас – установить плагин Option Tree, который позволит вам быстро и легко создать панель параметров темы (в меню «Внешний вид») с текстовым полем, в котором говорится: «Какой рекламный текст вы хотите на главной странице? ». Затем все, что вам нужно сделать, это вызвать значение этой опции в вашем шаблоне home.php, используя функцию дерева вариантов.

Надеюсь это поможет!

Если бы я был на вашем месте, я бы добавил пользовательское слово на страницу admin / config темы. Это было бы легче для меня, потому что:

  • Функциональность, связанная с модификацией вида, уже существует на странице администрирования темы.
  • Мне просто нужно добавить новую ссылку на переменную.
  • Промо, которое появляется при загрузке, определенно является частью конкретной темы и, следовательно, должно быть частью контроля темы.

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

То, как я подхожу к нему (и у меня сейчас что-то похожее), заключается в следующем:

  1. Создайте новый пункт меню либо в меню настроек (настройки -> настройки домашней страницы), либо создайте новый пункт меню домашней страницы, например, в разделе «Комментарии» или в конце вашего меню или где угодно. Затем в этом новом пункте меню создайте свою страницу.

  2. На странице, указанной на шаге 1, вы создаете все свои настройки администратора для домашней страницы (текущие и будущие настройки).

  3. Убедитесь, что страница (и ее ссылки на меню) доступны только пользователям admin через проверку роли

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

Для меня, как я упоминал ранее, я делаю то, что происходит в этом направлении, и создал плагин. Это поможет мне в будущем, если я хочу изменить свою тему, мне не нужно перебирать то, что нужно удалить и сохранить в моем коде.

Надеюсь это поможет.