AR-GROUP БАЗА ЗНАНИЙ

Что такое ACF?

В этой статье мы рассмотрим, как использовать кастомные поля записи в плагине ACF для WordPress. Этот плагин позволяет создавать удобные административные панели для управления контентом сайта.

 

Повторитель (Repeater)

Поле «Повторитель» позволяет создать набор вложенных полей, которые можно повторять снова и снова во время редактирования содержимого!

Любой тип поля может быть добавлен к повторителю. Он позволяет легко создавать и управлять повторяющимися данными!

 

<?php
if( have_rows('repeater_field_name') ):
while ( have_rows('repeater_field_name') ) : the_row();
?>
        <?php the_sub_field('sub_field_name'); ?>
<?
endwhile;
else :
endif;
?>

 

 

Объект записи (Post Object)

Поле «Объект записи» создает поле выбора, в котором вы можете выбрать ваши страницы + записи + пользовательские типы записей. Это поле полезно, если нужно предоставить выбрать посты только из определенного типа записей.

Вывести данные для единичного значения

<?php

$post_object = get_field('post_object');

if( $post_object ): 

	// перезаписать $post
	$post = $post_object;
	setup_postdata( $post ); 

	?>
    <div>
    	<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
    	<span>Объект записи произвольного поля: <?php the_field('field_name'); ?></span>
    </div>
    <?php wp_reset_postdata();?>
<?php endif; ?>

 

Вывести данные для множественных значений

<?php

$post_objects = get_field('post_objects');

if( $post_objects ): ?>
    <?php foreach( $post_objects as $post): ?>
        <?php setup_postdata($post); ?>
 
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <span>Объект записи произвольного поля: <?php the_field('field_name'); ?></span>

    <?php endforeach; ?>
 
    <?php wp_reset_postdata();?>
<?php endif;

?>

 

Страница опций

Страница с опциями позволяет добавлять дополнительные страниц в панель администратора WP и использовать всю мощь полей ACF! Каждая страница администратора может быть полностью настроена (см. Примеры кода ниже). Также можно создать дочерние (вложенные) страницы.

if( function_exists('acf_add_options_page') ) {
	
    //Добавление основного меню страницы опций

	acf_add_options_page(array(
		'page_title' 	=> 'Основные настройки',
		'menu_title'	=> 'Настройки темы',
		'menu_slug' 	=> 'theme-general-settings', //Важно добавить эту строчку во избежание багов
		'capability'	=> 'edit_posts',
		'redirect'		=> false
	));

	//Добавление дополнительного меню страницы опций

	acf_add_options_sub_page(array(
		'page_title' 	=> 'Настройки шапки',
		'menu_title'	=> 'Шапка',
		'parent_slug'	=> 'theme-general-settings',
	));
	
	//Добавление дополнительного меню страницы опций

	acf_add_options_sub_page(array(
		'page_title' 	=> 'Настройки подвала',
		'menu_title'	=> 'Подвал',
		'parent_slug'	=> 'theme-general-settings',
	));

}