Developer

Japan Clickable Map — 開発者向け情報

フック・ショートコード・カスタム投稿タイプなど、本プラグインを拡張・連携するための技術情報です。

ショートコード / ブロック

  • [jcm_map id="マップID" level="…" class="…"] — マップを描画。id は必須(都道府県マップ・市町村マップの投稿 ID。post type はサーバー側で自動判定)。
  • level(任意)— このショートコードに限り精度レベルを上書き。都道府県マップ: low / low-smooth / mid / high、市町村マップ: low / mid / highlow-smooth は都道府県マップのみ)。投稿側の設定より優先され、許可外の値は無視されます。
  • class(任意)— ルート要素に追加するカスタム CSS クラス。
  • ブロック名 jcm/map(「クリッカブル地図」)。属性 id(integer, 初期値 0)。動的ブロックで、レンダリングはショートコードと同じ処理に委譲されます。

カスタム投稿タイプ

post_type用途
jcm_map都道府県マップ
jcm_muni_map市町村マップ

いずれも public => false で、フロントの単独ページは持ちません(ショートコード/ブロック経由でのみ表示)。設定は post meta に JSON で保存されます。

メタキー内容
_jcm_config都道府県マップの設定一式(モード・配色・リンク・表示オプション等)
_jcm_muni_config市町村マップの設定一式(選択コード・エリア・上書き等)

プリセット色はオプション jcm_color_presets(hex カラーの配列・最大 24 件)に保存されます。

REST API

エンドポイントメソッド / 権限内容
/wp-json/jcm/v1/mapsGET / edit_posts公開済みマップの一覧を [{ id, title, kind }] で返す(ブロックエディタの選択 UI 用。kindprefecture | municipality

フロントエンドの出力

  • 地図は インライン SVG として出力されます(画像ファイルへの参照なし)。都道府県・市町村とも共通座標系で、選択範囲に応じて viewBox を再計算します。
  • ルート要素には jcm-map(市町村マップはさらに jcm-muni-map)クラスが付与され、ショートコードの class 属性で任意のクラスを追加できます。CSS の上書きはこのクラスを起点にしてください。
  • リンク設定のある領域のみ <a> でラップされます。リンクなしの領域はクリック不可(カーソル変化なし)。
  • CSS(jcm-base.css)はマップを描画したページでのみ読み込まれます。ポップアップを使うマップでは jcm-popover.css / jcm-popover.js が追加で読み込まれます(vanilla JS・jQuery 非依存)。
  • ポップアップのデータは <script type="application/json" class="jcm-popover-data"> としてマップ直後に埋め込まれ、フロント JS が DOM を生成します。ESC・外側クリックで閉じ、タッチ端末ではクリックトリガー・狭幅画面ではボトムシート表示に切り替わります。

管理側 AJAX アクション

いずれも nonce 検証つきの管理画面用エンドポイントです(フロントからの利用は想定していません)。

action権限用途
jcm_previewedit_post都道府県マップ編集画面のライブプレビュー(入力値から SVG を生成して返す)
jcm_muni_previewedit_post市町村マップ編集画面のライブプレビュー
jcm_search_objectsedit_postsポップアップのリンク項目用に投稿・タームをインクリメンタル検索(最大 20 件)

このほか、AJAX ではない管理アクションとして、マップ複製(admin_action_jcm_duplicate、権限 edit_post・投稿ごとの nonce。設定 post meta を引き継いだ下書きを作成)と、プリセット色の保存(admin_init 上の POST 処理、権限 manage_options・nonce jcm_save_presets)があります。

地図データ

  • 地図データ(SVG)はプラグインに同梱されており、外部 API・地図サービスへのリクエストは発生しません。
  • 市区町村は JIS X 0402(5 桁コード)基準の約 1,900 単位。政令指定都市は区単位(例: 14101 横浜市鶴見区)。
  • 精度レベルごとに別ファイルを持ち、選択されたレベルのデータのみ読み込まれます。

フック

現バージョンでは、拡張用の公開フィルター/アクションフックは提供していません。表示の調整はショートコードの class 属性と CSS(.jcm-map / .jcm-muni-map 起点)で行ってください。フックのご要望は管理画面のバグ報告ウィジェットまたはお問い合わせからお寄せください。

アンインストール時の挙動

プラグインをアンインストール(削除)しても、既定ではデータは削除されません。「クリッカブル地図 > 設定」でデータ削除(オプション jcm_uninstall_remove_all_data)を有効にしたうえでアンインストールした場合のみ、次のデータが削除されます。停止(無効化)では削除されません。

  • jcm_ 接頭辞のオプション(ライセンス情報・プリセット色を含む)
  • _jcm_ 接頭辞の post meta
  • jcm_map / jcm_muni_map の全投稿とその meta