You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于另一文章类型ID获取文章类型:员工专属评价页实现方案

实现员工专属评价页展示关联评价的方案

嘿,这个需求我之前帮客户处理过类似的,逻辑其实挺清晰的,咱们一步步来实现就行!

前提确认

先明确几个基础信息(如果和你的实际情况有出入,对应调整就行):

  • 评价内容是自定义文章类型(假设slug是testimonial)
  • ACF关联字段的字段名为related_employee,用来关联对应的员工简历页(返回格式设置为「Post ID」,这个很重要!)
  • 每个员工的专属评价页,已经通过自定义模板搭建完成,且评价页里有明确的方式关联到对应的员工简历页(比如评价页也有个ACF关联字段target_employee,或者评价页是员工简历页的子页面)

步骤1:获取当前评价页对应的员工ID

首先要拿到当前评价页关联的员工简历页ID,分两种常见情况:

情况A:评价页用ACF字段关联员工简历页

在你的评价页模板文件里,先获取关联的员工ID:

// 获取当前评价页关联的员工简历页ID
$employee_id = get_field('target_employee');

情况B:评价页是员工简历页的子页面

如果评价页是员工页的子页面,直接通过父页面ID获取:

// 获取当前评价页的父页面(员工简历页)ID
$employee_id = wp_get_post_parent_id(get_the_ID());

步骤2:查询关联该员工的所有评价

用WP_Query来筛选出所有关联了该员工的评价内容:

// 构建查询参数
$testimonial_args = array(
    'post_type'      => 'testimonial', // 你的评价自定义文章类型slug
    'posts_per_page' => -1,            // 显示所有评价,按需改成具体数字(比如10)
    'post_status'    => 'publish',     // 只展示已发布的评价
    'meta_query'     => array(
        array(
            'key'     => 'related_employee', // ACF关联字段的字段名
            'value'   => $employee_id,
            'compare' => '=',
            'type'    => 'NUMERIC'          // 因为关联字段存的是ID,按数字匹配
        )
    ),
    'orderby'        => 'date',        // 按发布时间排序,可换成其他字段
    'order'          => 'DESC'         // 倒序排列,最新的在前
);

// 执行查询
$testimonials_query = new WP_Query($testimonial_args);

步骤3:循环展示评价内容

拿到查询结果后,就可以像普通文章循环一样输出评价内容了,按需调整输出的字段:

// 检查是否有评价内容
if ($testimonials_query->have_posts()) :
    echo '<div class="employee-testimonials">';
        while ($testimonials_query->have_posts()) : $testimonials_query->the_post();
            echo '<div class="testimonial-card">';
                // 输出评价标题(如果有的话)
                echo '<h4 class="testimonial-title">' . get_the_title() . '</h4>';
                // 输出评价正文(假设ACF字段为`testimonial_content`)
                echo '<div class="testimonial-content">' . get_field('testimonial_content') . '</div>';
                // 输出客户信息(比如客户名称,ACF字段为`client_name`)
                if (get_field('client_name')) {
                    echo '<p class="testimonial-client">—— ' . get_field('client_name') . '</p>';
                }
            echo '</div>';
        endwhile;
    echo '</div>';
    // 重置查询,避免影响后续内容
    wp_reset_postdata();
else :
    // 没有评价时的提示
    echo '<p class="no-testimonials">暂无该员工的相关评价</p>';
endif;

额外注意事项

  • 确保ACF关联字段的返回格式设置为「Post ID」,否则查询会失效;
  • 如果你的评价不是自定义文章类型,而是用普通页面,把post_type改成page即可;
  • 可以给输出的评价内容添加自定义CSS类,比如.employee-testimonials、.testimonial-card,来做样式美化;
  • 如果需要更复杂的排序(比如按评价星级排序),可以在meta_query之外添加orderby参数指向对应的ACF字段。

内容的提问来源于stack exchange,提问作者OMGDrAcula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:42:09