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

如何在WordPress文章保存后为单篇文章页面头部添加JSON Schema脚本?

解决WordPress活动文章添加Google结构化数据脚本的问题

问题根源

你当前使用的wp_insert_post是文章保存/创建时触发的后台钩子,这个时机无法直接将脚本输出到前端页面。正确的做法是在前端页面渲染阶段生成并输出结构化数据脚本。

正确实现方案

  1. 改用前端渲染钩子(推荐wp_footer,避免阻塞页面头部加载)
  2. 先判断当前页面是否为活动类文章单页,避免在无关页面输出脚本
  3. 优化数据获取逻辑,用json_encode生成JSON(避免手动拼接的语法错误)

修正后的完整代码:

// 在页面底部输出活动结构化数据脚本
add_action( 'wp_footer', 'output_event_schema_script' );

function output_event_schema_script() {
    // 验证当前是否是活动类文章单页(替换'event'为你的活动文章类型标识符)
    if ( ! is_singular( 'event' ) ) {
        return;
    }

    $post_id = get_queried_object_id();
    $post = get_post( $post_id );
    if ( ! $post ) {
        return;
    }

    // 获取文章元数据
    $post_meta = get_post_meta( $post_id );
    $start_time = $post_meta['event_start_time'][0] ?? '';
    $end_time = $post_meta['event_end_time'][0] ?? '';
    $start_date = $post_meta['event_start_date'][0] ?? '';
    $end_date = $post_meta['event_end_date'][0] ?? '';

    // 拼接标准ISO日期格式
    if ( ! empty( $start_time ) && ! empty( $end_time ) && ! empty( $start_date ) && ! empty( $end_date ) ) {
        $start_date = "{$start_date}T{$start_time}:00";
        $end_date = "{$end_date}T{$end_time}:00";
    }

    // 获取活动名称与图片(用特色图片作为默认图,可替换为固定URL)
    $event_name = $post->post_title ?: '未命名活动';
    $event_image = get_the_post_thumbnail_url( $post_id, 'full' ) ?: 'https://你的默认图片URL';

    // 构建结构化数据数组
    $schema_data = [
        '@context' => 'https://schema.org',
        '@type' => 'Event',
        'name' => $event_name,
        'image' => $event_image,
        'startDate' => $start_date,
        'endDate' => $end_date
    ];

    // 输出脚本
    echo '<script type="application/ld+json">' . json_encode( $schema_data, JSON_UNESCAPED_SLASHES ) . '</script>';
}

关键说明

  • 替换is_singular( 'event' )中的event为你实际的活动类自定义文章类型ID
  • 使用json_encode生成JSON字符串,能自动处理引号转义、逗号拼接等问题,比手动拼接更可靠
  • 若需要将脚本放在页面头部,可把wp_footer替换为wp_head

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:35:15