get_sub_field()

get_sub_field() — ещё одна полезная функция плагина Advanced custom fields, которая используется с повторяющимися полями(repeater field) и flexible content field (лицензионный ключ не требуется), чтобы получить знаечение вложеных полей. Когда функция используется в цикле, она возвращает значения вложеных полей(см. примеры ниже). плагина Advanced custom fields.

Параметры:

1
<?php get_sub_field($sub_field_name); ?>
  • $sub_field_name — имя произвольного поля, значение которого хотим получить.(Обязательный)

Пример использования:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
 
/*
*  Цикл для повторяющихся полей "Repeater field"
*/
 
if( get_field('repeater') )
{
	while( has_sub_field('repeater') )
	{ 
		$variable = get_sub_field('sub_field');
 
		// Делаем что-то с вложенным полем ...
	}
}
 
/*
*  Цикл для Flexible Content field (гибкие поля)
*/
 
if( get_field('flexible_content') )
{
	while( has_sub_field("flexible_content") )
	{
		if( get_row_layout() == "paragraph" ) // Размещение: paragraph
		{
			$variable = get_sub_field('sub_field');
 
			// Делаем что-то с вложенным полем ...
		}
		elseif( get_row_layout() == "file" ) // Размещение: File
		{
			$variable = get_sub_field('sub_field');
 
			// Делаем что-то с вложенным полем ...
		}
	}
}
 
/*
* Циклическое применение вложенных полей Repeater
*/
 
if( get_field('parent_repeater') ): ?>
	<?php while( has_sub_field('parent_repeater') ): ?>
 
		<div>
			<?php if( get_sub_field('child_repeater') ): ?>
				<ul>
				<?php while( has_sub_field('child_repeater') ): ?>
					<li>
						<?php 
 
						$variable = get_sub_field('sub_field');
 
						// Делаем что-то с вложенным полем ...
 
						?>
					</li>
				<?php endwhile; ?>
				</ul>
			<?php endif; ?>
		</div>	
 
	<?php endwhile; ?>
<?php endif; 
 
/*
*  Циклическое применение вложенных полей Repeater (От другого $post ID)
*/
 
if( get_field('parent_repeater', 123) ): ?>
	<?php while( has_sub_field('parent_repeater', 123) ): ?>
 
		<div>
			<?php 
 
			/*
			*  Внимание: Вам не нужно указывать $post_id для вспомогательных функций поля.
			*/
 
			if( get_sub_field('child_repeater') ): ?>
				<ul>
				<?php while( has_sub_field('child_repeater') ): ?>
					<li>
						<?php 
 
						$variable = get_sub_field('sub_field');
 
						// Делаем что-то с вложенным полем ... 
 
						?>
					</li>
				<?php endwhile; ?>
				</ul>
			<?php endif; ?>
		</div>	
 
	<?php endwhile; ?>
<?php endif;
 
?>

Оставить комментарий


четыре × = 36