Произвольные поля WordPress плагином Advanced Custom Fields (ACF)

 

 

 

Документация ACF

 

Если же в настройках экрана вы ничего подобного не нашли, то вероятнее всего тип поста, с которым вы работаете, не поддерживает использование произвольных полей — это легко поправимо при помощи 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для нацеливания на определенный объект сообщения. В этом примере показано, как загрузить значение со страницы параметров. Продолжить чтение: получение значений на странице параметров