获取多个帖子内容

问题描述

所以我在 wordpress 环境中的 function.PHP 文件中,我想添加一个过滤器,它允许我的一个插件选择多个自定义字段。更具体地说,我有这个搜索插件,它在下拉菜单显示结果,每个结果的右侧都有图像和描述字段。我想要的是用一些自定义字段填充描述字段,一个在另一个下面显示为列表。我对 PHP 了解不多,所以我不知道我到底做错了什么。这是我的实际代码

add_filter( 'asl_results','asl_get_the_content_after',10,1 );
function asl_get_the_content_after( $results ) {
    
    // Parse through each result item
    foreach ($results as $k=>&$r) {
        if ( isset($r->post_type) ) {
            $r->content = get_post_field('year',$r->id);
            $r->content = get_post_field('color',$r->id);
            $r->content = get_post_field('price',$r->id);
        }
    }
    return $results;
}

使用此代码搜索结果显示最后一个字段。我真正想要的是在不同的行中显示所有这些自定义字段。我已经尝试将所有内容放在一个自定义字段中,但它不考虑空间,将所有内容放在一行中。我该怎么办?

解决方法

这种行为是意料之中的,因为在 IF 内部,您要替换内容,而不是将其连接或添加到数组中。正确的做法是:

if ( isset($r->post_type) ) {
    if ( !$r->content ) $r->content = '';
    $r->content .= get_post_field('year',$r->id) . "<br>";
    $r->content .= get_post_field('color',$r->id) . "<br>";
    $r->content .= get_post_field('price',$r->id) . "<br>";
}