如何跨多个页面共享重复字段中包含的特定数据

时间:2013-03-22 作者:Jonathan Beech

我一直在使用高级自定义字段插件,非常欣赏它的功能。

我在我正在工作的网站上有一个关于我们的页面,该页面包含一份员工名单(共4名)。我使用advanced custom field插件中的add-on repeater字段构建了这个员工列表。

我还开发了一个单页模板,专门介绍名为“治疗”的专业行业领域的信息,数据是从同名的主自定义帖子循环输出的。有4个单独的自定义帖子类型包含此信息。

每名员工单独负责四种治疗方法中的一种。因此,当输出特定治疗自定义帖子数据的单页视图时,我想将该信息附加到负责该治疗的相关工作人员那里。

下面的代码使用页面id 89获取了about us页面模板中的所有内容。不完全是我想要的,因为我需要在页面id 89中取一行,看看这是否是一个匹配的对,以便将页面输入到单个处理中。php页面

然而,代码是正确的。

<?php
$other_page = 89;
?>
<?php if(get_field(\'about_the_practioner\' , $other_page )): ?>
<?php while(the_repeater_field(\'about_the_practioner\' , $other_page)): ?>
<h4><?php the_sub_field(\'header\' )?><span><?php the_sub_field(\'title\' )?></span></h4>
<?php endwhile; ?>
<?php endif; ?>
是否有办法从工作人员转发器字段中获取相关行数据,具体取决于向单页模板中输入了什么样的处理自定义帖子?

2 个回复
最合适的回答,由SO网友:Milo 整理而成

不必输出所有行,您可以检查循环中的每一行,并仅在匹配时输出它。

在本例中,有一个treatment 中继器中的字段,该字段是治疗岗位名称的值。如果两者匹配,则输出其他值:

$other_page = 89;
$practioners = get_field( \'about_the_practioner\' , $other_page );
foreach( $practioners as $practioner ):
    if( get_the_title() == $practioner[\'treatment\'] ):
        echo \'<h4>\' . $practioner[\'title\'] . \'</h4>\';
    endif;
endforeach;
作为额外的奖励,您可以创建一个选择字段,通过动态添加职位标题作为选择字段值来为每个从业者选择治疗职位。请参阅ACF文档以了解acf_load_field 滤器在筛选功能中,您可以查询所有治疗帖子,并将每个标题添加为选择选项。

SO网友:Jonathan Beech

在@Milo提供了一些有用的提示之后,我将此代码添加到了我的单一治疗页面。“关于我们”页面的每个工作人员转发器数据中都包含一个页面链接字段。此页面链接链接到相关的专家治疗页面,因此显然是与当前的单一治疗页面permalink相匹配的完美候选页面。

我使用get\\u permalink函数使用此字段的输出来匹配当前页面的permalink。我也看到了@milo的想法的优点,例如,如果工作人员参与了两个或更多的治疗专业,你可以用单选按钮来检查这些值。相关从业人员将出现在两个单一治疗岗位上。

                <?php if(get_field(\'about_the_practioner\'  , $other_page )): ?>

                        <?php while(the_repeater_field(\'about_the_practioner\'  , $other_page)): ?>


                <?php if (strcasecmp(get_sub_field(\'page_link\'),get_permalink())==0) {?>
                 <div class="staff lightgrey-background clearfix">

                    <figure class="colleague_excerpts">
                        <?php if(get_sub_field(\'image\')): ?>
                        <img src="<?php the_sub_field(\'image\' ) ?>" alt="<?php the_sub_field(\'image_alt_text\'); ?>">
                        <?php else: ?>
                        <img src="http://placehold.it/160x160&text=Awaiting Image">
                        <?php endif; ?> 
                        <img src="http://placehold.it/200x200&text=Awaiting Image">
                    </figure>
                    <div class="description">
                        <header>
                            <h4><?php the_sub_field(\'header\')?><span><?php the_sub_field(\'title\')?></span></h4>

                        </header>
                        <p><?php the_sub_field(\'text\') ?></p>
                        <a href="<?php the_sub_field(\'page_link\')?>" class="button"><?php the_sub_field(\'page_link_text\') ?></a>

                    </div>

                </div>
                <?php }?>

                <?php endwhile; ?>

                <?php endif; ?>

结束

相关推荐

如何跨多个页面共享重复字段中包含的特定数据 - 小码农CODE - 行之有效找到问题解决它

如何跨多个页面共享重复字段中包含的特定数据

时间:2013-03-22 作者:Jonathan Beech

我一直在使用高级自定义字段插件,非常欣赏它的功能。

我在我正在工作的网站上有一个关于我们的页面,该页面包含一份员工名单(共4名)。我使用advanced custom field插件中的add-on repeater字段构建了这个员工列表。

我还开发了一个单页模板,专门介绍名为“治疗”的专业行业领域的信息,数据是从同名的主自定义帖子循环输出的。有4个单独的自定义帖子类型包含此信息。

每名员工单独负责四种治疗方法中的一种。因此,当输出特定治疗自定义帖子数据的单页视图时,我想将该信息附加到负责该治疗的相关工作人员那里。

下面的代码使用页面id 89获取了about us页面模板中的所有内容。不完全是我想要的,因为我需要在页面id 89中取一行,看看这是否是一个匹配的对,以便将页面输入到单个处理中。php页面

然而,代码是正确的。

<?php
$other_page = 89;
?>
<?php if(get_field(\'about_the_practioner\' , $other_page )): ?>
<?php while(the_repeater_field(\'about_the_practioner\' , $other_page)): ?>
<h4><?php the_sub_field(\'header\' )?><span><?php the_sub_field(\'title\' )?></span></h4>
<?php endwhile; ?>
<?php endif; ?>
是否有办法从工作人员转发器字段中获取相关行数据,具体取决于向单页模板中输入了什么样的处理自定义帖子?

2 个回复
最合适的回答,由SO网友:Milo 整理而成

不必输出所有行,您可以检查循环中的每一行,并仅在匹配时输出它。

在本例中,有一个treatment 中继器中的字段,该字段是治疗岗位名称的值。如果两者匹配,则输出其他值:

$other_page = 89;
$practioners = get_field( \'about_the_practioner\' , $other_page );
foreach( $practioners as $practioner ):
    if( get_the_title() == $practioner[\'treatment\'] ):
        echo \'<h4>\' . $practioner[\'title\'] . \'</h4>\';
    endif;
endforeach;
作为额外的奖励,您可以创建一个选择字段,通过动态添加职位标题作为选择字段值来为每个从业者选择治疗职位。请参阅ACF文档以了解acf_load_field 滤器在筛选功能中,您可以查询所有治疗帖子,并将每个标题添加为选择选项。

SO网友:Jonathan Beech

在@Milo提供了一些有用的提示之后,我将此代码添加到了我的单一治疗页面。“关于我们”页面的每个工作人员转发器数据中都包含一个页面链接字段。此页面链接链接到相关的专家治疗页面,因此显然是与当前的单一治疗页面permalink相匹配的完美候选页面。

我使用get\\u permalink函数使用此字段的输出来匹配当前页面的permalink。我也看到了@milo的想法的优点,例如,如果工作人员参与了两个或更多的治疗专业,你可以用单选按钮来检查这些值。相关从业人员将出现在两个单一治疗岗位上。

                <?php if(get_field(\'about_the_practioner\'  , $other_page )): ?>

                        <?php while(the_repeater_field(\'about_the_practioner\'  , $other_page)): ?>


                <?php if (strcasecmp(get_sub_field(\'page_link\'),get_permalink())==0) {?>
                 <div class="staff lightgrey-background clearfix">

                    <figure class="colleague_excerpts">
                        <?php if(get_sub_field(\'image\')): ?>
                        <img src="<?php the_sub_field(\'image\' ) ?>" alt="<?php the_sub_field(\'image_alt_text\'); ?>">
                        <?php else: ?>
                        <img src="http://placehold.it/160x160&text=Awaiting Image">
                        <?php endif; ?> 
                        <img src="http://placehold.it/200x200&text=Awaiting Image">
                    </figure>
                    <div class="description">
                        <header>
                            <h4><?php the_sub_field(\'header\')?><span><?php the_sub_field(\'title\')?></span></h4>

                        </header>
                        <p><?php the_sub_field(\'text\') ?></p>
                        <a href="<?php the_sub_field(\'page_link\')?>" class="button"><?php the_sub_field(\'page_link_text\') ?></a>

                    </div>

                </div>
                <?php }?>

                <?php endwhile; ?>

                <?php endif; ?>

相关推荐