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

如何在WordPress中程序化实现传记数据库的嵌套JSON-LD Schema

解决WordPress名人传记站嵌套JSON-LD Schema构建问题

一、正确嵌套Person、净资产与职业里程碑的PHP实现

直接通过wp_head钩子结合ACF字段构建嵌套数组,再用json_encode生成符合Schema.org标准的JSON-LD,是最直接的方案。以下是完整代码示例:

add_action('wp_head', function() {
    // 仅在名人传记自定义文章类型单页输出(替换为你的自定义文章类型slug)
    if (!is_singular('biography')) return;

    // 初始化Person Schema基础数据
    $schema = [
        '@context' => 'https://schema.org',
        '@type' => 'Person',
        'name' => get_the_title(),
        'description' => wp_strip_all_tags(get_the_excerpt()),
        'birthDate' => get_field('birth_date'), // 对应ACF日期字段
        'image' => get_the_post_thumbnail_url(get_the_ID(), 'full')
    ];

    // 嵌套净资产(MonetaryAmount类型)
    $net_worth = get_field('net_worth');
    if ($net_worth) {
        $schema['netWorth'] = [
            '@type' => 'MonetaryAmount',
            'currency' => 'USD', // 根据站点需求调整货币代码
            'value' => (float)$net_worth
        ];
    }

    // 嵌套职业里程碑(Event数组)
    $milestones = get_field('career_milestones'); // ACF重复字段
    if ($milestones && is_array($milestones)) {
        $schema['event'] = [];
        foreach ($milestones as $item) {
            $schema['event'][] = [
                '@type' => 'Event',
                'name' => $item['milestone_title'],
                'startDate' => $item['milestone_date'],
                'description' => wp_strip_all_tags($item['milestone_desc'])
            ];
        }
    }

    // 输出JSON-LD脚本
    echo '<script type="application/ld+json">' . json_encode($schema, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . '</script>';
});

二、性能保障的核心要点

  • 精准条件触发:通过is_singular限制仅在目标文章类型单页执行,避免全局加载浪费资源
  • 原生函数优先:用json_encode生成JSON,比手动拼接字符串效率高,且能自动处理格式规范
  • 减少冗余查询:直接调用get_field获取ACF数据,避免重复执行WP数据库查询
  • 轻量输出:仅保留必要的Schema字段,避免添加无关属性增加输出体积

三、手动实现vs插件选择

  • 单个数组+json_encode是最优解:完全可控,无插件依赖,性能开销最小,适合定制化需求强的场景
  • 插件方案仅适合非技术场景:如果需要非开发人员编辑Schema,可以选择轻量的Schema插件,但需警惕功能冗余的插件(会额外增加钩子、查询逻辑,拖慢站点)
  • WordPress无原生钩子专门处理复杂嵌套Schema,wp_head是标准的输出位置,符合SEO规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.01 18:42:29