Snow Monkey という WordPressプレミアムテーマがあることはご存知の方も多いと思いますが、そちらを活用したウェブサイトのページに求人情報を掲載したいという方も少なくないでしょう。
そして、WordPress を利用しているウェブサイトであれば、ベクトルさんが提供してくださっている VK Google Job Posting Manager というプラグインがありますので、そちらを活用することで簡単に Googleしごと検索(Google for job)に対応した構造化JSON-LDを発信することが可能となります。
しかし、どうしても以下の警告が出てしまって、なんとか解消できないものかということでご相談をいただいた件がありました。
この author.url
は、このコンテンツの著者(制作者)の情報を示すURLを掲載する部分になるのですが、よくある About ページのようなものが該当するかと思われます。
しかし、全てのウェブサイトで同じスラッグが用いられるとは言えませんし、任意項目なので必ず入力を必要とされる箇所でもありません。
しかし、最近推奨項目として格上げされたようです。
また、求人情報を発信する構造化JSON-LDの項目も独自に加えたいものがあるということでしたので、より一層独自に求める入力項目を用意することになりました。
本件から得られた知識を、こちらの記事で紹介したいと思います。
カスタマイズした構造化JSON-LDを出力するためにカスタムフィールドを用意
プラグイン選定の要件
今回、お客さまの方から「こちらのサイトで出力されているような構造でJSONを出力したい」というご要望が具体的にありましたので、そちらの内容を最低限クリアする入力項目を独自に用意することを考えました。
- 特定の条件でのみカスタムフィールド(入力部分)を表示したい
- 納品後に何か変更したくなった際のリソース量
- 納品後に何か変更したくなった際に管理画面で出来るだけ対応できるようにしたい
などの要件から、カスタムフィールドを用意するプラグインには Advanced Custom Fileds を採用しました。
入力フォームの最適化
そして、タブを活用して入力部分が必要以上に縦長レイアウトにならないように配慮しました。
また、独自にカスタムフィールドを用意するメリットとしては、
- 予め分かっている使いまわせる部分を事前に入力させておくことができる
- お客様の特性に配慮した入力しやすいフォームを用意することができる
という点があると感じました。
採用形式が複数になった場合の配列出力処理
採用形式(正規・パートタイム・アルバイトなど)を複数設定することが、求人情報構造化JSON-LDでは可能ですので、入力部分でもチェックボックスで複数を選択することができるように作りました。
そして、JSON記法の特徴として、複数項目の区切りには ,
を使うのですが、最後の項目の後ろには記述する必要がありません。
ですので、そこら辺をよしなに判断して出力してもらうために、以下のようなコードで配列形式で得た情報を出力しています。
$employment_types = get_post_meta( get_the_ID(), 'cf_employment-type', true );
foreach( $employment_types as $item ) {
if ( $item === end( $employment_types ) ) {
echo $item;
} else {
echo $item . ',';
}
}
そんな難しいことは書いていませんが end()
関数を使って配列の最後かどうかを判断するようにしています。
構造化JSON-LDの出力位置
調べていただくとわかるように、JSONの出力位置自体はかなり自由度があります。今回は </head>
の直前に出力するようにフックで書き出しました。
add_action(
'wp_head',
function () {
do someshing
},
9999
);
Googleしごと検索の author.url に Snow Monkey で対応する方法
もう1つは、この求人情報ページのコンテンツとしての著者(個人or組織)のURL情報を設定します。
Snow Monkey 自体が構造化JSON-LDを出力してくれているので、そちらの情報に手を加えられるかどうかをリサーチしました。
Snow Monkey のソースコードを追いかけてみると、構造化JSON-LDを出力してくれているのは、外部ライブラリを使われていることがわかります。(vendor
に入っているので)
そして、こちらのソースコードを読んでみるとフックでなんとかできることがわかります。
snow-monkey/vendor/inc2734/wp-seo/src/setup/json-ld.php
こんな感じでフック処理を行うことができます。
add_filter(
'inc2734_wp_seo_json_ld',
function ( $json_ld ) {
if ( is_single() ) {
$json_ld['author'] = array_merge( $json_ld['author'], [ 'url' => home_url( '/about' ) ] );
return $json_ld;
} else {
return $json_ld;
}
}
);
上のコードだと、is_single()
の時だけ url
の値を追加で出力するようにしています。皆さんの状況に応じてよしなに書き換えてください。
これを応用して特定のページ(今回は求人情報ページ)の構造化JSON-LDに author.url
を追加することができます。
よって、構造化データテストを行っても、ノーティスも出なくなります。
まとめ
このような形で、Snow Monkey を活用されているお客様からの要望を完全に叶えることができました。
また、便利なプラグインが有りながらそちらを活用しない形を採用しているので、それに勝るUI/UXを提供する必要があります。そのために、一層ユーザー目線で入力フォームを最適化することにも注力しました。
本件の対応内容・費用としては、
- ヒアリング(オンライン/Zoom)
- 実装・テスト・バリデーション
- 確認・修正・質疑
- 検収・納品完了(納品形式はプラグインで運用サイトへインストール&設定まで)
このような作業内容で ¥55,000(税込)でお請けさせていただきました。
このような、部分的な改修やカスタマイズもいつでもご相談・お請けしておりますので、お気軽にご相談いただけますと幸いです。