问题描述
我的 (Relevanssi) 搜索结果中有多种帖子类型,例如新闻、博客、公司等。搜索输出显示:标题、日期、特色图片和摘要。但是,我需要公司的日期字段不同;所以对于所有其他帖子类型,发布日期输出很好,但对于公司,我需要日期输出为一行文本(可以硬编码)。
搜索功能在我的 Feed.twig 文件中控制。它以 {% for item in Feed %} 开头,然后运行一系列参数,例如:
{% if item.image %}
<a href="{{ item.path }}" class="item-image">
<picture>
{{ item.image|responsive_image('card_image','card_image_desktop_1x','object-fit') }}
</picture></a>
{% endif %}
这基本上意味着如果帖子类型有图像,然后用该图像填充搜索结果模板。如果帖子类型没有图片,则不要在搜索结果中显示图片字段。
为了控制公司的不同日期,我添加了一个 acf 字段(真/假),以便如果勾选它,日期输出自定义文本,如果未勾选,则日期输出为发布日期。这是我的日期代码:
{% if post.Meta('show_text_for_date') == true and item.date %}
<span class="item-header-date">CUSTOM DATE TEXT HERE</span>
{% elseif post.Meta('show_text_for_date') == false and item.date %}
<span class="item-header-date"><time datetime="{{ item.date|date("Y-m-d") }}">item.date|date("jS F Y") }}</time></span>
{% endif %}
这意味着,如果选中了 acf 复选框,并且帖子类型有日期,则使用硬编码文本填充日期字段。如果未勾选 acf 字段且帖子类型有日期,请使用帖子日期填充日期字段。
这是可行的,但是它会在第一个搜索结果上查询参数,然后将其应用于每个搜索结果。因此,如果有一个搜索返回,它将正常工作,如果有多个搜索返回,则第一个返回的参数将控制其余部分的日期输出。
我的(长!)问题是,我如何在每个搜索结果上运行该日期参数,而不是只在第一个搜索结果上运行它然后控制其余的?
任何帮助将不胜感激,我完全坚持这一点!
谢谢
search.PHP:
// Search
$context['Feed'] = array();
foreach ( $search_results as $search_result ) {
$image = false;
// Image
$components = get_field( 'components',$search_result->ID );
if ( $components[0]['acf_fc_layout'] === 'hero' && !empty( $components[0]['image'] ) ) {
$image = $components[0]['image']['ID'];
} elseif ( has_post_thumbnail( $search_result->ID ) ) {
$image = get_post_thumbnail_id( $search_result->ID );
}
$context['Feed'][] = array(
'title' => $search_result->post_title,'summary' => get_the_excerpt( $search_result->ID ),'path' => get_the_permalink( $search_result->ID ),'image' => $image,'label' => '','label_path' => '','date' => '',);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)