Arkhe【トップページ】構造化データの出力をカスタマイズする

WordPressテーマ Arkhe にプラグイン Arkhe Toolkit を追加すると、構造化データ(JSON-LD)を出力するようになる。

ただ、なぜか、トップページの構造化データに、name のプロパティが出力されていない。

Google 検索検索セントラルの資料を読むと、必須プロパティは、nameurl とある。

資料で指示されているサンプルコードがこちら

    <script type="application/ld+json">
    {
      "@context" : "https://schema.org",
      "@type" : "WebSite",
      "name" : "Example",
      "url" : "https://example.com/"
    }
  </script>

SEO系プラグインを使う?

All in one SEOやYoast SEOを使えば解決しそうなのだが、Arkheには、SEO SIMPLE PACKを合わせて使いたい。ということで、functions.phpからカスタマイズを行なった。

トップページでは構造化データを出力しない

以下のコードをfunctions.phpに追加すると、トップページではArkhe Toolkitの構造化データの出力を停止できる。

    function remove_action_json_ld_dat_for_front_page() {
        if ( is_front_page() ) {
            remove_action( 'wp_footer', '\Arkhe_Toolkit\output_json_ld', 20 );
        }
    }
    add_action( 'wp', 'remove_action_json_ld_dat_for_front_page' );

トップページの構造化データを生成するコード

トップページの構造化データは、下のコードで出力する。functions.phpに追加するとOKだ。

    add_action('wp_footer',function(){
	    if (is_home() || is_front_page()){
	    
	        // トップページ
		    $home_url            = home_url( '/' );
		    $name_blog           = get_bloginfo("name");
		    $json_lds['WebSite'] = '{
			    "@context": "http://schema.org",
			    "@type": "WebSite",
			    "name": "' . $name_blog . '",
			    "url": "' . esc_url( $home_url ) . '",
			    "potentialAction": {
			    "@type": "SearchAction",
			    "target": "' . esc_html( $home_url ) . '?s={s}",
			    "query-input": "name=s required"
			}
	    }';
	    
	    echo PHP_EOL . '<!-- JSON-LD @ TOP PAGE -->' . PHP_EOL;
	    echo '<script type="application/ld+json">[' . implode( ',', $json_lds ) . ']</script>'; // phpcs:ignore WordPress.Security
	    echo PHP_EOL . '<!-- / JSON-LD @ TOP PAGE -->' . PHP_EOL;
	}
},30);

これら2つのコードを使うと、トップページの構造化データに、name のプロパティが出力できる。

karuku.amid.co.jpのコード

karuku.amid.co.jp は静的化しているため、検索のパートを削除し、下のようなコードを追加した。

これで、検索結果に反映されるか、時間を置いて確認する。

/* 構造化データ TOP PAGE カスタマイズ */
/*  【ON】JSON-LDを自動生成する    */
/*  【ON】パンくずリストの構造をJSON-LDに含める    */
/* 優先度 30 */

    /* トップページのときは、Arkhe Toolkit */
    /* 構造化データ JSON-LD フックを remove */
    /* 停止する */
    function remove_action_json_ld_dat_for_front_page() {
        if ( is_front_page() ) {
            remove_action( 'wp_footer', '\Arkhe_Toolkit\output_json_ld', 20 );
        }
    }
    add_action( 'wp', 'remove_action_json_ld_dat_for_front_page' );

    add_action('wp_footer',function(){
	    if (is_home() || is_front_page()){
	    
	        // トップページ
		    $home_url            = home_url( '/' );
		    $name_blog           = get_bloginfo("name");
		    $json_lds['WebSite'] = '{
			    "@context": "http://schema.org",
			    "@type": "WebSite",
			    "name": "' . $name_blog . '",
			    "alternateName": ["軽く生きるヒント", "かるいき", "かるく生きるヒント"],
			    "url": "' . esc_url( $home_url ) . '"
		    }';
	    
	    echo PHP_EOL . '<!-- JSON-LD @ TOP PAGE functions.php -->' . PHP_EOL;
	    echo '<script type="application/ld+json">[' . implode( ',', $json_lds ) . ']</script>'; // phpcs:ignore WordPress.Security
	    echo PHP_EOL . '<!-- / JSON-LD @ TOP PAGE functions.php -->' . PHP_EOL;
	}
},30);
/* end 構造化データ カスタマイズ */

参考資料

✓ あわせて読みたい
Arkheカスタマイズの基本 | Arkhe

この記事を書いた人

大東 信仁

カンパチが好きです。

プロフィールはこちら

10月14日開催 参加者募集中
(画像をタップ→詳細へ)

ミッションナビゲート モニター
(画像をタップ→詳細へ)

広告