Если же в настройках экрана вы ничего подобного не нашли, то вероятнее всего тип поста, с которым вы работаете, не поддерживает использование произвольных полей — это легко поправимо при помощи add_post_type_support(). Код для functions.php
:
function true_custom_fields() { add_post_type_support( 'book', 'custom-fields'); // в качестве первого параметра укажите название типа поста } add_action('init', 'true_custom_fields');
Вывод полей
<?php the_meta(); ?>
<p>
Это мой телефон: <?php echo get_post_meta($post->id, number_phone, true ); ?>
</p>
Скрыть пустые пользовательские поля
Если дополнительное поле пустое, то давайте его скроем. Для этого необходимо добавить следующий код:
<?php $phone = get_post_meta($post->ID, 'phone', true); if ($phone) { ?> <p>Телефон: <? echo $phone; ?></p> <?php } else { // do nothing; } ?>
Добавление нескольких значений в пользовательское поле
Дополнительные поля могут использоваться несколько раз в одной и той же записи. Чтобы добавить несколько значений поля нужно снова выбрать его и добавить другое значение.
Однако код, в приведенных выше примерах, сможет отображать только одно значение.
Чтобы отобразить все значения настраиваемого поля, нам нужно изменить код и заставить его возвращать данные в массиве. Для этого меняем код:
<?php $phone = get_post_meta($post->ID, 'phone', false); if( count( $phone) != 0 ) { ?> <p>Телефон:</p> <ul> <?php foreach($phone as $p) { echo '<li>'.$p.'</li>'; } ?> </ul> <?php } else { // do nothing; } ?>
Ключ phone меняем на название поля.
В этом примере мы изменили последний параметр функции get_post_meta на false. Этот параметр определяет, должна ли функция возвращать одно значение или нет. Установка его в значение false позволяет вернуть данные в виде массива, который затем отображается в цикле foreach.
Отображать пользовательские поля за пределами цикла в WordPress
Чтобы отобразить пользовательские поля вне цикла WordPress, добавьте следующий код:
<?php global $wp_query; $postid = $wp_query->post->ID; echo get_post_meta($postid, 'key', true); wp_reset_query(); ?>
Подключив плагин ACF
<h2> <?php the_field(‘ Ключ ‘); ?> </h2>
Чтобы создать страницу параметров, просто откройте свой functions.php
файл и добавьте следующую строку кода:
FUNCTIONS.PHP
if( function_exists('acf_add_options_page') ) {
acf_add_options_page();
}
Расширенное использование
В этом примере показано, как создать настраиваемую страницу параметров с дочерними элементами.
FUNCTIONS.PHP
if( function_exists('acf_add_options_page') ) {
acf_add_options_page(array(
'page_title' => 'Theme General Settings',
'menu_title' => 'Theme Settings',
'menu_slug' => 'theme-general-settings',
'capability' => 'edit_posts',
'redirect' => false
));
acf_add_options_sub_page(array(
'page_title' => 'Theme Header Settings',
'menu_title' => 'Header',
'parent_slug' => 'theme-general-settings',
));
acf_add_options_sub_page(array(
'page_title' => 'Theme Footer Settings',
'menu_title' => 'Footer',
'parent_slug' => 'theme-general-settings',
));
}
Использование шаблона
Все функции API можно использовать с полями «страницы параметров». Однако для целевой страницы параметров требуется второй параметр. Это похоже на прохождение через a $post_id
для нацеливания на определенный объект сообщения. В этом примере показано, как загрузить значение со страницы параметров. Продолжить чтение: получение значений на странице параметров
<?php the_field('header_title', 'option'); ?>
https://www.advancedcustomfields.com/resources/options-page/
Пользовательские поля WordPress: все, что нужно для начала работы
https://wordpressify.ru/2019/08/polzovatelskie-polya-wordpress-vse-chto-nuzhno-dlya-nachala-raboty/
Customize API
https://wp-kama.ru/handbook/theme/customize-api#:~:text=%D0%9A%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%B0%D0%B9%D0%B7%D0%B5%D1%80%20%E2%80%94%20%D1%8D%D1%82%D0%BE%20API%20%D0%B4%D0%BB%D1%8F%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D1%8F,%D0%B2%D0%B8%D0%B4%D0%B6%D0%B5%D1%82%D1%8B%2C%20%D0%BC%D0%B5%D0%BD%D1%8E%20%D0%B8%20%D1%82%D0%B0%D0%BA%20%D0%B4%D0%B0%D0%BB%D0%B5%D0%B5.