搜索页面上的 Wordpress ACF 中继器字段

Posted

技术标签:

【中文标题】搜索页面上的 Wordpress ACF 中继器字段【英文标题】:Wordpress ACF Repeater Field on Search Page 【发布时间】:2020-04-25 20:36:48 【问题描述】:

我对某些帖子使用高级自定义字段。在类别页面上,所有重复字段和字段组字段都正确显示。但是在搜索结果页面上,这些类型的字段是空的。 例如我的电影演员代码

//Actors
$act1 = get_field('schauspieler_1', $post->ID);
$act2 = get_field('schauspieler_2', $post->ID);
$act3 = get_field('schauspieler_3', $post->ID);
$act4 = get_field('schauspieler_4', $post->ID);
$act5 = get_field('schauspieler_5', $post->ID);
$cast = esc_attr($act1['schauspieler_name']).', '.esc_attr($act2['schauspieler_name']).', '.esc_attr($act3['schauspieler_name']).', '.esc_attr($act4['schauspieler_name']).' und '.esc_attr($act5['schauspieler_name']);

它被称为

<p><?php esc_html_e( 'Actors', 'elvistheme' ); ?>:  <span class="text-grey"><?php echo $cast; ?></span></p>

在它显示的类别页面上:

达斯特勒:猫王、玛丽·泰勒·摩尔、芭芭拉·麦克奈尔、莉奥拉·达娜和简·艾略特

但在搜索结果页面上显示:

Darsteller: , , , und

文本、日期等普通字段显示正确。

【问题讨论】:

这很令人困惑。在您的问题中,您提到了中继器字段,但您没有提到实际使用中继器的位置 - 如果您想要可变数量的演员并重复该演员的字段组,这将是有意义的。 另外,您还没有指定 ACF 字段组与哪些帖子类型一起使用。如果它用于所有帖子。对于某些显示为搜索结果的帖子,这些字段可能为空。要进一步调试,您可以使用$cast = '[post: '.$post-&gt;ID.' type: "'.$post-&gt;post_type.'"] '. esc_attr($act1['schauspieler_name']).', '.esc_attr($act2['schauspieler_name']).', '.esc_attr($act3['schauspieler_name']).', '.esc_attr($act4['schauspieler_name']).' und '.esc_attr($act5['schauspieler_name']);将帖子的 ID 和类型显示在演员姓名之前。 对不起。字段组与标准帖子类型一起使用。我有 5 个具有 2 个文本字段的 5 个演员的字段组。 schauspieler_1 = 组,1. 字段 - schauspieler_name = 演员姓名,2. 字段 - schauspieler_rollenname = 角色名称 使用 search.php 模板中的更多代码更新您的问题。需要看看你在哪里调用这些 get_field 函数 【参考方案1】:

您显示 ACF 内容的方式似乎有误。 只需放置简单的代码:

$act1 = get_field('schauspieler_1',get_the_ID()); $行动2 = get_field('schauspieler_2', get_the_ID()); $行动3 = get_field('schauspieler_3', get_the_ID()); $act4 = get_field('schauspieler_4', get_the_ID()); $行动5 = get_field('schhauspieler_5', get_the_ID()); 回声 $act1 。 $行动2。 $行动3。 $行动2。 $行动4。 $act5;

如果您的搜索查询与您在其中获取此内容的帖子中的相关关键字匹配,则这应该可以在搜索页面内正常工作。

希望这会有所帮助。

【讨论】:

感谢您的帮助,但它不起作用。字段 schauspieler_1、schauspieler_2、schauspieler_3、schauspieler_4 和 schauspieler_5 是具有子字段 schauspieler_name 的字段组

以上是关于搜索页面上的 Wordpress ACF 中继器字段的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress ACF 中继器子字段

php 用于跟踪代码的ACF自定义字段中继器(Wordpress)

将 ACF 字段添加到搜索结果页面 WordPress

如何在 ACF 中继器上启用重复功能

Wordpress ACF 中继器字段 - 仅拉入前 2 个字段

ACF 中继器字段:对链接使用函数