@klekovkinandrey

Как можно вывести поля с acf на другую страницу?

Есть блок, состоящий из полей, прикрученных к определенной странице
<div class="sbrlist">
			<?php if ( get_field('slogan_3img') ) { ?>
			<div>
			<?php the_field('slogan_3img'); ?>
			</div>
			<?php } ?>
			<?php if ( get_field('slogan_3block') ) { ?>
			<div>
			<?php the_field('slogan_3block'); ?>
			</div>
			<?php } ?>
			<?php if ( get_field('knopka3') ) { ?>
			<div>
			<a data-fancybox data-src="#order4"><?php the_field('knopka3'); ?></a>
			</div>
			<?php } ?>	
		</div>

нужно этот же блок вывести в типы записей
но если указать этой группе полей привязку к типу записей, то под каждой записи нужно эти поля по новому заполнять
хотелось бы избежать этого геморра
возможно ли заполненный блок с полями допустим, который привязан к главной вывести в типы записей не заполняя его для каждой записи, а заполнив лишь только для главной?
надеюсь понятно описал
  • Вопрос задан
  • 50 просмотров
Решения вопроса 3
UnluckySerivelha
@UnluckySerivelha
get_field('knopka3', 123)
Где 123 - ID записи, для которой заполнено поле
Ответ написан
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов zolin.digital
Функции get_field() и the_field() вторым параметром принимают id записи

  • get_field($selector, [$post_id], [$format_value]);
  • the_field($selector, [$post_id], [$format_value]);


По умолчанию это id текущей записи в цикле, но вы можете передать туда любой id:

  • get_field( 'slogan_3img', 15 );
  • the_field( 'slogan_3img', 15 );


Но лучше всего создать общий блок в с опциями темы, тогда вторым параметром в функциях указывается значение 'options'

  • get_field( 'slogan_3img', 'options' );
  • the_field( 'slogan_3img', 'options' );
Ответ написан
@Jokerrs567
Работает на ACF PRO

1. Создаем страницу параметров в админке через functions.php:

if( function_exists('acf_add_options_page') ) {
$args = array(
'page_title' => 'Параметры',
'menu_title' => '',
'menu_slug' => 'Options',
'post_id' => 'options',
);
acf_add_options_page( $args );
}

Теперь страница с параметрами отображается в админке.

2. В настройках плагина в условиях отображения выбираем страницу с опциями.

3. На уже созданной странице с параметрами заполняем поля.

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

<?php the_field('img_feature' , 'options'); ?>

Таким способом можно выводить абсолютно все. Повторяющиеся блоки faq, отзывы, и так далее.

К примеру, делаем кусочек вёрстки, кидаем его в папку template-parts и называем template-faq.php. Уже сейчас, что бы в нем ни было его можно подключить к нужному шаблону через get_template_part.

Какой-то там контент сверху
<?php get_template_part( 'template-parts/template-faq' ); ?>
Какой-то там контент снизу.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы