傻大憨

wordpress插入JSON-LD结构化数据

在WordPress中添加JSON-LD结构化数据主要有三种方法:使用专用插件(最省心)、手动添加到主题文件(更灵活)、或利用现有SEO插件功能。

方法一:使用专用插件(推荐,无需代码)

如果你的主要需求是快速、无代码地实现常见Schema类型,安装专用插件是最佳选择。以下是一些高质量的免费插件:

1.AgilePress Schema JSON-LD Block

这是一个Gutenberg区块插件,让你可以在编辑器侧边栏直接配置JSON-LD,支持文章/页面的动态占位符(如{{title}}、{{excerpt}})和ACF字段。

特点:提供本地商家、组织、FAQ等模板,实时验证JSON有效性,数据通过wp_head输出。

适用场景:习惯使用块编辑器、需要精细控制单篇文章Schema的用户。

2.Schema Guru

一个轻量级但功能全面的结构化数据插件,支持全局或单篇文章分配Schema类型。

支持的Schema类型:LocalBusiness、Product、Article、Job Posting、Event、Recipe、FAQ Page等。

特点:可以设置全局默认信息(如组织名称、Logo),并为每篇文章单独设置,兼容AMP。

3.Structured Content (JSON-LD)

提供多种Gutenberg区块和经典编辑器短代码,方便在内容中插入特定类型的结构化数据。

支持类型:FAQPage、JobPosting、Recipe、Event、Course、Person等。

特点:可以选择仅输出JSON-LD,或以可见HTML + JSON-LD的方式呈现。

4.DataStackLogic Schema Manager

专注于Organization和LocalBusiness的核心Schema输出,同时提供强大的FAQ管理和AI爬虫控制功能。

特点:可批量导入FAQ,支持一键配置针对GPTBot、ClaudeBot等15种AI爬虫的访问规则。

适用场景:对本地商家SEO和AI搜索引擎优化有较高需求的站点。

5.Pointalize FAQ Markup

一个“零配置”的插件,专门用于FAQ页面。

工作原理:只需在文章/页面中使用WordPress自带的“Details”区块(或任何HTML标签)创建FAQ,插件会自动检测并生成合法的FAQ Page JSON-LD注入到页面头部。

方法二:手动添加代码(开发者适用)

如果你不想使用额外插件,或者需要实现高度定制化的Schema,可以将代码添加到主题的functions.php文件中。Google推荐使用wp_add_inline_script来注入JSON-LD,因为它能更好地避免缓存插件导致的问题。

代码示例:为文章页动态生成Article Schema

add_action('wp_enqueue_scripts', 'add_custom_json_ld_script');
function add_custom_json_ld_script() {
    // 仅在单篇文章页面执行
    if (is_single()) {
        // 获取必要的数据
        $title = get_the_title();
        $excerpt = get_the_excerpt();
        $author_name = get_the_author();
        $date_published = get_post_time('c', true);
        $date_modified = get_post_modified_time('c', true);
        $post_url = get_permalink();
        
        // 获取特色图片URL
        $image_url = '';
        if (has_post_thumbnail()) {
            $image = wp_get_attachment_image_src(get_post_thumbnail_id(), 'full');
            $image_url = $image[0];
        }

        // 构建JSON-LD数组
        $json_ld_data = array(
            '@context' => 'https://schema.org',
            '@type' => 'Article',
            'headline' => $title,
            'description' => wp_strip_all_tags($excerpt),
            'author' => array(
                '@type' => 'Person',
                'name' => $author_name,
            ),
            'datePublished' => $date_published,
            'dateModified' => $date_modified,
            'mainEntityOfPage' => array(
                '@id' => $post_url,
            ),
            'url' => $post_url,
        );

        // 如果有图片,则添加到数组中
        if (!empty($image_url)) {
            $json_ld_data['image'] = array(
                '@type' => 'ImageObject',
                'url' => $image_url,
            );
        }

        // 将数组编码为JSON字符串
        $json_ld = json_encode($json_ld_data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);
        
        // 使用wp_add_inline_script注入
        wp_add_inline_script('wp-i18n', $json_ld, 'before');
    }
}

代码说明:

使用wp_add_inline_script(‘wp-i18n’,$json_ld,’before’)将JSON-LD注入到页面中,这个方法比直接add_action(‘wp_head’)更可靠。

所有数据都通过WordPress函数动态获取,确保与页面内容严格一致。

author使用嵌套对象格式,而不是纯字符串。

mainEntityOfPage通常直接使用当前页面的URL作为@id。

如果你需要在特定页面类型(如页面、首页)输出其他Schema类型,可以修改is_single()条件判断,并调整@type和相关属性。

方法三:使用SEO插件内置功能

如果你已经安装了Yoast SEO、Rank Math等主流SEO插件,它们本身就提供了强大的结构化数据功能。这些插件通常会自动输出基础的Organization、WebSite和Article Schema。

Rank Math:你可以在其设置中调整每个帖子/页面的Schema类型(如将页面设为WebPage而不是Article),或通过rank_math/json_ld过滤器进行自定义修改。

Yoast SEO:同样支持多种Schema类型的自动生成和手动配置,通常能满足大多数标准需求。

如何选择?

你的需求推荐方案
零代码,快速实现常见类型(如文章、本地商家)使用 Schema Guru 或 Rank Math 等 SEO 插件内置功能。
需要在内容中灵活插入 FAQ、Recipe、Event使用 Structured Content 或 AgilePress Schema JSON-LD Block 插件。
开发者,需要完全自定义所有 Schema 内容采用 手动代码 方式,使用 wp_add_inline_script 添加。
需要批量管理 FAQ Schema 或控制 AI 爬虫使用 DataStackLogic Schema Manager

无论使用哪种方法,添加完成后,都建议使用Google富结果测试工具验证你的结构化数据是否有效。

Published
Categorized as 建站知识 Tagged ,

By 傻大憨

shadahan.com是一个关注跨境电商、创业话题的网站。

模板之家mymoban提供的模板是否支持多语言版本

模板之家(MyMoban.com)作为一个提供网站模板的平台,可能会提供支持多语言的模板,以适应不同用户的国际… Continue reading 模板之家mymoban提供的模板是否支持多语言版本

The best WordPress service company in China

Jianzhanpress not only excels in WordPress theme design, but also has significant advantages in the field of foreign trade website construction, which can help enterprises achieve success in the international market.

wordpress已知该分类id 获取分类名字和分类链接代码

在制作wordpress模板时,有时会用到根据分类ID来调用分类名称或链接的时候,用以上这段代码即可解决。

建产品展示型独立站用wordpress几百元就够了

通过合理规划预算和选择合适的服务,使用WordPress搭建外贸独立站的成本可以控制在几百元到几千元之间。

外贸建站程序选择找到最适合你业务的方案

  在外贸业务中,拥有一个专业、功能强大的网站是取得成功的关键一步。选择合适的外贸建站程序是实现这一目标的重要… Continue reading 外贸建站程序选择找到最适合你业务的方案

非插件方式为wordpress添加一个额外的编辑器

在WordPress中,要添加一个额外的区块编辑器,你需要编写一些PHP代码来注册新的区块,并可能还需要一些JavaScript来处理前端的逻辑。