本文整理汇总了PHP中reset_rows函数的典型用法代码示例。如果您正苦于以下问题:PHP reset_rows函数的具体用法?PHP reset_rows怎么用?PHP reset_rows使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了reset_rows函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: have_rows
function have_rows($field_name, $post_id = false)
{
// vars
$depth = 0;
$row = array();
$new_parent_loop = false;
$new_child_loop = false;
// reference
$_post_id = $post_id;
// filter post_id
$post_id = apply_filters('acf/get_post_id', $post_id);
// empty?
if (empty($GLOBALS['acf_field'])) {
// reset
reset_rows(true);
// create a new loop
$new_parent_loop = true;
} else {
// vars
$row = end($GLOBALS['acf_field']);
$prev = prev($GLOBALS['acf_field']);
// If post_id has changed, this is most likely an archive loop
if ($post_id != $row['post_id']) {
if ($prev && $prev['post_id'] == $post_id) {
// case: Change in $post_id was due to a nested loop ending
// action: move up one level through the loops
reset_rows();
} elseif (empty($_post_id) && isset($row['value'][$row['i']][$field_name])) {
// case: Change in $post_id was due to this being a nested loop and not specifying the $post_id
// action: move down one level into a new loop
$new_child_loop = true;
} else {
// case: Chang in $post_id is the most obvious, used in an WP_Query loop with multiple $post objects
// action: leave this current loop alone and create a new parent loop
$new_parent_loop = true;
}
} elseif ($field_name != $row['name']) {
if ($prev && $prev['name'] == $field_name && $prev['post_id'] == $post_id) {
// case: Change in $field_name was due to a nested loop ending
// action: move up one level through the loops
reset_rows();
} elseif (isset($row['value'][$row['i']][$field_name])) {
// case: Change in $field_name was due to this being a nested loop
// action: move down one level into a new loop
$new_child_loop = true;
} else {
// case: Chang in $field_name is the most obvious, this is a new loop for a different field within the $post
// action: leave this current loop alone and create a new parent loop
$new_parent_loop = true;
}
}
}
if ($new_parent_loop) {
// vars
$f = get_field_object($field_name, $post_id);
$v = $f['value'];
unset($f['value']);
// add row
$GLOBALS['acf_field'][] = array('name' => $field_name, 'value' => $v, 'field' => $f, 'i' => -1, 'post_id' => $post_id);
} elseif ($new_child_loop) {
// vars
$f = acf_get_child_field_from_parent_field($field_name, $row['field']);
$v = $row['value'][$row['i']][$field_name];
$GLOBALS['acf_field'][] = array('name' => $field_name, 'value' => $v, 'field' => $f, 'i' => -1, 'post_id' => $post_id);
}
// update vars
$row = end($GLOBALS['acf_field']);
if (is_array($row['value']) && array_key_exists($row['i'] + 1, $row['value'])) {
// next row exists
return true;
}
// no next row!
reset_rows();
// return
return false;
}
示例2: reset_the_repeater_field
function reset_the_repeater_field()
{
return reset_rows();
}
示例3: render_layout
function render_layout($field, $layout, $i, $value)
{
// vars
$order = 0;
$el = 'div';
$div = array('class' => 'layout', 'data-id' => $i, 'data-layout' => $layout['name']);
// collapsed class
if (acf_is_row_collapsed($field['key'], $i)) {
$div['class'] .= ' -collapsed';
}
// clone
if (is_numeric($i)) {
$order = $i + 1;
} else {
$div['class'] .= ' acf-clone';
}
// title
$title = $this->get_layout_title($field, $layout, $i, $value);
// remove row
reset_rows();
?>
<div <?php
acf_esc_attr_e($div);
?>
>
<div class="acf-hidden">
<?php
acf_hidden_input(array('name' => "{$field['name']}[{$i}][acf_fc_layout]", 'value' => $layout['name']));
?>
</div>
<div class="acf-fc-layout-handle" title="<?php
_e('Drag to reorder', 'acf');
?>
"><?php
echo $title;
?>
</div>
<ul class="acf-fc-layout-controlls acf-hl">
<li class="acf-fc-show-on-hover">
<a class="acf-icon -plus small" href="#" data-event="add-layout" title="<?php
_e('Add layout', 'acf');
?>
"></a>
</li>
<li class="acf-fc-show-on-hover">
<a class="acf-icon -minus small" href="#" data-event="remove-layout" title="<?php
_e('Remove layout', 'acf');
?>
"></a>
</li>
<li>
<a class="acf-icon -collapse small" href="#" data-event="collapse-layout" title="<?php
_e('Click to toggle', 'acf');
?>
"></a>
</li>
</ul>
<?php
if (!empty($layout['sub_fields'])) {
?>
<?php
if ($layout['display'] == 'table') {
// update vars
$el = 'td';
?>
<table class="acf-table">
<thead>
<tr>
<?php
foreach ($layout['sub_fields'] as $sub_field) {
$atts = array('class' => "acf-th acf-th-{$sub_field['name']}", 'data-key' => $sub_field['key']);
// Add custom width
if ($sub_field['wrapper']['width']) {
$atts['data-width'] = $sub_field['wrapper']['width'];
}
?>
<th <?php
acf_esc_attr_e($atts);
?>
>
<?php
echo acf_get_field_label($sub_field);
?>
<?php
if ($sub_field['instructions']) {
?>
<p class="description"><?php
echo $sub_field['instructions'];
?>
</p>
<?php
}
?>
</th>
//.........这里部分代码省略.........
示例4: have_rows
function have_rows($field_name, $post_id = false)
{
// vars
$depth = 0;
$row = array();
$new_parent_loop = false;
$new_child_loop = false;
$no_post_id = !$post_id ? true : false;
// filter post_id
$post_id = apply_filters('acf/get_post_id', $post_id);
// empty?
if (empty($GLOBALS['acf_field'])) {
// reset
reset_rows(true);
// create a new loop
$new_parent_loop = true;
} else {
// vars
$row = end($GLOBALS['acf_field']);
$prev = prev($GLOBALS['acf_field']);
// detect a change in params?
if ($post_id != $row['post_id'] || $field_name != $row['name']) {
// case: previous have_rows loop was terminated early and template is now loading row data from another $post
// case: previous have_rows loop was terminated early and template is now loading row data from another $field_name
// case: nested have_rows loop
$new_parent_loop = true;
if (isset($row['value'][$row['i']][$field_name])) {
// Inception: Repeater within repeater
// Note: Sit back and enter the next level of dream
$new_child_loop = true;
// It is possible that the origional have_rows function used a custom $post_id param, but this sub loop did not use one. If so, remove the potential to create a new parent loop due to the $post_id change!
if ($no_post_id || $post_id == $row['post_id']) {
$new_parent_loop = false;
}
} elseif ($prev && $prev['name'] == $field_name) {
// Inception: Ride kick up one level
// Note: This can happen if someone used break or ran out of rows
reset_rows();
$new_parent_loop = false;
}
}
}
if ($new_parent_loop) {
// vars
$f = get_field_object($field_name, $post_id);
$v = $f['value'];
unset($f['value']);
// add row
$GLOBALS['acf_field'][] = array('name' => $field_name, 'value' => $v, 'field' => $f, 'i' => -1, 'post_id' => $post_id);
} elseif ($new_child_loop) {
// vars
$f = acf_get_child_field_from_parent_field($field_name, $row['field']);
$v = $row['value'][$row['i']][$field_name];
$GLOBALS['acf_field'][] = array('name' => $field_name, 'value' => $v, 'field' => $f, 'i' => -1, 'post_id' => $post_id);
}
// update vars
$row = end($GLOBALS['acf_field']);
if (is_array($row['value']) && array_key_exists($row['i'] + 1, $row['value'])) {
// next row exists
return true;
}
// no newxt row!
reset_rows();
// return
return false;
}
示例5: wp_get_attachment_image
/**
* Get gallery image
*/
echo wp_get_attachment_image(get_sub_field('gallery_image'), 'slide-wide', array('alt' => 'image'));
?>
</li>
<?php
if ($i++ == 5) {
break;
}
}
reset_rows();
?>
</ul>
<?php
} else {
?>
<?php
_e('No Gallery found', 'atu');