エンティティ管理

Person(個人)/ Corporation(企業)/ Organization(組織)の 3 種類のエンティティを、独立した 3 テーブルで管理します。各タブで全フィールドを個別に登録・編集・削除できます。

本プラグインの管理画面は admin.php?page=kapm に配置され、上部のナビゲーションタブで 3 つのエンティティ種別を切り替えます。デフォルトは Person タブで、URL クエリ &tab=corporation / &tab=organization で切り替わります。エンティティはすべて独立したカスタムテーブルに保存され、WordPress ユーザーとは関連付きません。

管理画面の共通操作

1

WordPress 管理画面の左サイドバーから 「Kashiwazaki SEO Author Panel Manager」(dashicons-id-alt アイコン)をクリックします。

2

上部の Person / Corporation / Organization タブをクリックして、管理したいエンティティ種別を選択します。

3

一覧画面の 「新規追加」 ボタンから登録画面を開き、各フィールドを入力して保存します。既存エンティティは 「編集」 リンクから修正できます。

4

削除は一覧の 「削除」 リンクから行います。削除操作には JavaScript の confirm() ダイアログが表示され、さらにサーバー側で nonce 検証が行われます。

Person 一覧画面
保存先テーブル

3 種のエンティティは別テーブルに保存されます({prefix}apm_persons / {prefix}apm_corporations / {prefix}apm_organizations)。テーブルはプラグイン有効化時に dbDelta() で作成され、インデックスは PRIMARY KEY (id) のみです。詳細な DB スキーマは トラブルシューティングの DB スキーマ表を参照してください。

Person(個人)タブ

Person タブは、記事の執筆者・レビュアー・編集者など「個人」を登録するためのタブです。ここで登録したエンティティはブロックエディタや [author_panel] ショートコードから Person の ID で参照され、Schema.org の Person 型 JSON-LD として出力されます。

Person 編集画面(パネルのデザイン・カラー・カスタムカラー)
Person 編集画面。下部に「パネルのデザイン」「パネルのカラー」があり、カラーを「カスタム」にすると背景色・文字色・アクセント色のカラーピッカーが表示されます

Person の全フィールド(13 項目)

Person 登録フォーム(admin/views/person-form.php)の全フィールドと、対応する DB カラム・型・既定値・未入力時の挙動を以下にまとめます。

UI 表示名 内部キー
(POST / DB)
DB 型 必須 既定値 入力形式 未入力時の挙動
名前 name varchar(255) NOT NULL 必須 '' 1 行テキスト HTML の required 属性でブラウザ側バリデーション。サーバー側は sanitize_text_field() で無害化のみ。
英語名 name_en varchar(255) NOT NULL 任意 '' 1 行テキスト 空の場合、JSON-LD の alternateName プロパティは出力されません。HTML パネルの (英語名) 表記も省略されます。
Role role varchar(255) NOT NULL 任意 'Author' 自由入力テキスト(ツールチップに推奨値一覧) 本フィールドはセレクトではなく <input type="text"> です。未定義値は role_to_property() で author として扱われます(後述マッピング表参照)。
肩書き(Job Title) job_title varchar(255) NOT NULL 任意 '' 1 行テキスト 空の場合、HTML パネルの肩書き行と JSON-LD の jobTitle プロパティは出力されません。
自己紹介(Bio) bio text NOT NULL 任意 '' 複数行テキスト(5 行表示) 空の場合、HTML パネルの Bio 段落と JSON-LD の description は省略されます。サニタイズは sanitize_textarea_field()(改行は保持、HTML タグは除去)。
画像 image_url varchar(2083) NOT NULL 任意 '' URL + メディアライブラリ選択ボタン 空の場合、パネルの画像要素と JSON-LD の image(ImageObject)は出力されません。URL は esc_url_raw() で保存されます。
URL url varchar(2083) NOT NULL 任意 '' URL 空の場合、名前がテキストのみ(リンクなし)になります。JSON-LD の url プロパティは省略され、@id 生成時のベース URL は home_url('/') にフォールバックします。
sameAs URL same_as text NOT NULL 任意 '' 複数行テキスト(1 行 1 URL) 保存時は 1 行ずつ esc_url_raw() で URL として無害化されます(v1.0.3 から。以前の sanitize_textarea_field() は %E6%9F%8F のようなパーセントエンコードを削除し、日本語を含む LinkedIn 等の URL を壊していました)。表示時は 1 行ずつ filter_var(FILTER_VALIDATE_URL) で検証され、通過したもののみ JSON-LD の sameAs 配列とフロントのアイコン表示に使われます。無効な行は静かにスキップされます。
パネルのデザイン panel_style varchar(50) NOT NULL 任意 'default' select(4 値固定) 未指定時は default。選択肢は default(標準)/accent(アクセント)/minimal(ミニマル)/card(カード)の 4 種で、形だけを決めます。後述「パネルのデザインとカラー」を参照。
パネルのカラー panel_color varchar(50) NOT NULL 任意 'auto' select(8 値固定) 未指定時は auto(おまかせ=デザインごとの標準配色)。custom を選ぶと下の 3 色が使われます。後述「パネルのデザインとカラー」を参照(v1.0.3 で追加)。
背景色 / 文字色 / アクセント色 color_bg
color_text
color_accent
varchar(7) NOT NULL 任意 '' カラーピッカー(WordPress 標準の wp-color-picker) カラーが「カスタム」のときだけ入力欄が表示され、使われます。sanitize_hex_color() で #rgb / #rrggbb 以外は空文字として保存されます。空の色は既定値(背景 #ffffff・文字 #333333・アクセント #0073aa)になります(v1.0.3 で追加)。
DB 固定カラム

このほか、すべてのエンティティテーブルに id bigint(20) unsigned AUTO_INCREMENT(PRIMARY KEY)と created_at datetime DEFAULT CURRENT_TIMESTAMP が自動付与されます。ユーザーが入力するカラムではありません。

Person の Role フィールド推奨値

Role は自由入力テキストですが、ツールチップでは以下の 8 種類の値が推奨されています。ここに載っていない文字列を入れても保存は通りますが、Custom モードの JSON-LD 変換では未定義値として扱われます(既定の author にマップされる)。

推奨値 意味 Custom モード時の
Schema.org プロパティ
Author(既定)記事の執筆者author
Publisher記事の発行元・出版社publisher
Editor記事の編集者editor
Reviewer記事のレビュー・監修者reviewedBy
Contributor寄稿者・協力者contributor
Creatorコンテンツの作成者creator
Sponsorスポンサー・資金提供者sponsor
Translator翻訳者translator

Corporation(企業)タブ

Corporation タブは、記事の発行元や運営会社などの企業法人を登録するタブです。ここで登録したエンティティは Schema.org の Corporation 型として JSON-LD 出力されます。Corporation は Organization のサブタイプで、営利法人であることをより明示できます。

Corporation 一覧画面

Corporation の基本フィールド(12 項目)

Corporation のフォーム(admin/views/corporation-form.php)は Person から job_title / bio / image_url を取り除き、description(説明)と logo_url(ロゴ画像)に置き換えた構成になっています。

このほか、住所・電話番号・メール・法人情報などの任意項目が 20 あります(v1.0.4 で追加)。住所・連絡先・法人情報を参照してください。

UI 表示名 内部キー
(POST / DB)
DB 型 必須 既定値 入力形式 未入力時の挙動
名前 name varchar(255) NOT NULL 必須 '' 1 行テキスト required によるブラウザバリデーション。JSON-LD の name プロパティへ出力されます。
英語名 name_en varchar(255) NOT NULL 任意 '' 1 行テキスト 空の場合、JSON-LD の alternateName と HTML パネルの英語併記が省略されます。
Role role varchar(255) NOT NULL 任意 'Publisher' 自由入力テキスト 既定は Publisher(Person と異なる点に注意)。Custom モード時、role_to_property() で Schema.org プロパティに変換されます。
説明(Description) description text NOT NULL 任意 '' 複数行テキスト(5 行表示) 空の場合、HTML パネルの説明行と JSON-LD の description は出力されません。sanitize_textarea_field() で保存。
URL url varchar(2083) NOT NULL 任意 '' URL 空の場合、名前はテキストのみ表示され、JSON-LD の url は省略されます。@id のベース URL は home_url('/')。
ロゴ logo_url varchar(2083) NOT NULL 任意 '' URL + メディアライブラリ選択ボタン 空の場合、パネルのロゴ画像と JSON-LD の logo(ImageObject)は出力されません。
sameAs URL same_as text NOT NULL 任意 '' 複数行テキスト(1 行 1 URL) 保存時は 1 行ずつ esc_url_raw() で URL として無害化されます(v1.0.3 から。以前の sanitize_textarea_field() は %E6%9F%8F のようなパーセントエンコードを削除し、日本語を含む LinkedIn 等の URL を壊していました)。表示時は 1 行ずつ FILTER_VALIDATE_URL で検証し、通過行のみ JSON-LD の sameAs 配列へ出力されます。
パネルのデザイン panel_style varchar(50) NOT NULL 任意 'default' select(4 値固定) 選択肢は Person と共通(default/accent/minimal/card)。
パネルのカラー panel_color varchar(50) NOT NULL 任意 'auto' select(8 値固定) 未指定時は auto(おまかせ=デザインごとの標準配色)。custom を選ぶと下の 3 色が使われます。後述「パネルのデザインとカラー」を参照(v1.0.3 で追加)。
背景色 / 文字色 / アクセント色 color_bg
color_text
color_accent
varchar(7) NOT NULL 任意 '' カラーピッカー(WordPress 標準の wp-color-picker) カラーが「カスタム」のときだけ入力欄が表示され、使われます。sanitize_hex_color() で #rgb / #rrggbb 以外は空文字として保存されます。空の色は既定値(背景 #ffffff・文字 #333333・アクセント #0073aa)になります(v1.0.3 で追加)。

Corporation の Role フィールド推奨値

Corporation/Organization のツールチップでは、記事発行元という主な用途に合わせて 5 種類のみを推奨しています。Person と同様、未定義値は author にマップされます。

推奨値 意味 Custom モード時の
Schema.org プロパティ
Publisher(既定)記事の発行元・出版社publisher
Author記事の執筆者(法人名義の場合)author
Sponsorスポンサー・資金提供者sponsor
Creatorコンテンツの作成者creator
Contributor寄稿者・協力者contributor

Organization(組織)タブ

Organization タブは、研究機関・業界団体・非営利組織・運営メディアなど、Corporation 以外の組織を登録するためのタブです。Schema.org の Organization 型として JSON-LD 出力されます。

Organization 一覧画面

Organization の基本フィールド(12 項目)

Organization のフォーム(admin/views/organization-form.php)のカラム構成は Corporation と完全に同一ですが、独立した DB テーブル {prefix}apm_organizations に保存され、Schema.org の型も異なります。Corporation と混在させず、営利法人以外は必ず Organization タブで登録してください。

このほか、住所・電話番号・メール・法人情報などの任意項目が 20 あります(v1.0.4 で追加)。住所・連絡先・法人情報を参照してください。

UI 表示名 内部キー
(POST / DB)
DB 型 必須 既定値 入力形式 Schema.org での出力型
名前 name varchar(255) NOT NULL 必須 '' 1 行テキスト Organization.name
英語名 name_en varchar(255) NOT NULL 任意 '' 1 行テキスト Organization.alternateName
Role role varchar(255) NOT NULL 任意 'Publisher' 自由入力テキスト Custom モード時に role_to_property() でプロパティ変換
説明(Description) description text NOT NULL 任意 '' 複数行テキスト Organization.description
URL url varchar(2083) NOT NULL 任意 '' URL Organization.url
ロゴ logo_url varchar(2083) NOT NULL 任意 '' URL + メディアライブラリ Organization.logo(ImageObject)
sameAs URL same_as text NOT NULL 任意 '' 複数行テキスト(1 行 1 URL) Organization.sameAs(配列)。保存時は 1 行ずつ esc_url_raw() で無害化(v1.0.3 から)
パネルのデザイン panel_style varchar(50) NOT NULL 任意 'default' select(4 値固定) HTML パネルの CSS クラス .kapm-style-* に反映
パネルのカラー panel_color varchar(50) NOT NULL 任意 'auto' select(8 値固定) HTML パネルの CSS クラス .kapm-color-* に反映
背景色 / 文字色 / アクセント色 color_bg
color_text
color_accent
varchar(7) NOT NULL 任意 '' カラーピッカー カラーが「カスタム」のときだけ、カードの style 属性に CSS 変数として出力
Corporation と Organization の使い分け

一般的な営利企業(株式会社・合同会社等)は Corporation、学会・研究所・NPO・業界団体・運営メディア(ブランド名)などは Organization に登録してください。両者はテーブルも @id の接頭辞(#corporation-{id} / #organization-{id})も分かれており、JSON-LD 上では別エンティティとして扱われます。

住所・連絡先・法人情報(Corporation / Organization 共通)

Corporation と Organization の編集画面には、基本の項目の下に「住所・電話番号」「メール・問い合わせ窓口」「法人情報」の 3 つのまとまりがあります(v1.0.4 で追加)。どれも任意で、空欄の項目は出力しません。入力した項目はすべて構造化データ(JSON-LD)に出力します。パネルでは、住所と電話番号を説明文の下に表示し、入力した項目の一覧を名前の横の i ボタンの吹き出しに表示します。Person にはこの項目はありません。

Corporation 編集画面の住所・電話番号、メール・問い合わせ窓口、法人情報の入力欄
Corporation 編集画面の下部。Organization の編集画面にも同じ項目があります

項目一覧(20 項目)

DB の列はすべて varchar(255) NOT NULL、既定値は '' です。

UI 表示名 内部キー
(POST / DB)
JSON-LD のプロパティ パネル 入力のきまり
郵便番号 postal_code address.postalCode 説明文の下・吹き出し 自由入力(例: 100-0001)
都道府県 address_region address.addressRegion 説明文の下・吹き出し 自由入力
市区町村 address_locality address.addressLocality 説明文の下・吹き出し 自由入力
番地・建物名 street_address address.streetAddress 説明文の下・吹き出し 自由入力
国コード address_country address.addressCountry ―(住所の書き方の切り替えに使用) ISO 3166-1 の英字 2 文字。小文字は大文字に直して保存します。未入力の場合、入力欄には JP が入った状態で表示されます
電話番号 telephone telephone 説明文の下(tel: リンク)・吹き出し 自由入力。国番号と市外局番を含める書き方(例: +81-3-1234-5678)を推奨
メールアドレス email email 吹き出し メールアドレスの形式(sanitize_email() で確認)
問い合わせ窓口の種類 contact_type contactPoint.contactType 吹き出し 自由入力(例: Customer Service)
問い合わせ窓口の電話番号 contact_telephone contactPoint.telephone 吹き出し 自由入力
問い合わせ窓口のメールアドレス contact_email contactPoint.email 吹き出し メールアドレスの形式
正式名称(登記上の名称) legal_name legalName 吹き出し 自由入力。「名前」と異なる場合に入力
設立日 founding_date foundingDate 吹き出し YYYY-MM-DD / YYYY-MM / YYYY。実在しない日付は不可
従業員数 number_of_employees numberOfEmployees(QuantitativeValue) 吹き出し 人数(50)か範囲(100-999)。全角数字・カンマ・「〜」も受け付け、半角に直して保存
税務上の識別番号(taxID) tax_id taxID 吹き出し 自由入力(例: 法人番号 13 桁)
VAT 登録番号(vatID) vat_id vatID 吹き出し 自由入力
ISO 6523 コード iso6523_code iso6523Code 吹き出し 自由入力。識別体系の番号(ICD)、コロン、ID の順(例: 0199:724500PMK2A2M1SQQ228)
DUNS 番号 duns duns 吹き出し 自由入力
LEI コード lei_code leiCode 吹き出し 自由入力
GLN(GS1 Global Location Number) global_location_number globalLocationNumber 吹き出し 自由入力
NAICS コード naics naics 吹き出し 自由入力

出力のきまり

パネルでの表示

住所と電話番号を表示した Corporation のパネル
住所と電話番号は説明文の下に表示され、名前の横に i ボタンが付きます

住所は、地図ピンのアイコン付きで 1 行にまとめて表示します。国コードが JP か空欄なら「〒郵便番号 都道府県市区町村番地・建物名」、それ以外の国なら「番地, 市区町村, 州 郵便番号」の順です。電話番号は受話器のアイコン付きで、入力したとおりの文字で表示し、タップすると電話をかけられるリンク(tel:)にします。アイコンには読み上げ用の名前(「住所」「電話番号」)が付いています。

名前の横の吹き出し(i ボタン)

名前の横の i ボタンにマウスを乗せて、住所・連絡先・法人情報の吹き出しを表示したパネル
i ボタンにマウスを乗せると、入力した項目の一覧が吹き出しで出ます

住所・連絡先・法人情報のどれかが入力されていると、名前の横に i ボタン(dashicons-info-outline)が付きます。ボタンにマウスを乗せるか、タップするか、キーボードで移動すると、入力した項目の「項目名」と「内容」の一覧が吹き出しで出ます。国コードしか入っていない場合(既定の JP だけの場合)は、ボタンは出ません。

JSON-LD の出力例

すべての項目を入力した Corporation の出力(整形済み、ほかの項目は省略):

{
  "@type": "Corporation",
  "@id": "https://example.com/#corporation-2",
  "name": "株式会社サンプル",
  "url": "https://example.com/",
  "legalName": "Sample Kabushiki Kaisha",
  "email": "info@example.com",
  "telephone": "+81-3-1234-5678",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "千代田1-1 サンプルビル5F",
    "addressLocality": "千代田区",
    "addressRegion": "東京都",
    "postalCode": "100-0001",
    "addressCountry": "JP"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "Customer Service",
    "telephone": "+81-3-1234-0000",
    "email": "support@example.com"
  },
  "foundingDate": "2012-06-26",
  "numberOfEmployees": {
    "@type": "QuantitativeValue",
    "minValue": 100,
    "maxValue": 999
  },
  "taxID": "1234567890123",
  "vatID": "T1234567890123",
  "iso6523Code": "0199:724500PMK2A2M1SQQ228",
  "duns": "123456789",
  "leiCode": "724500PMK2A2M1SQQ228",
  "globalLocationNumber": "4512345678906",
  "naics": "541810"
}
Google のドキュメントとの対応

項目と書式は、Google 検索セントラルの Organization の構造化データに合わせています。同ページによると必須の項目はなく、当てはまる項目をできるだけ入れることが勧められています。また、組織の情報はホームページか組織を説明する 1 ページに置くことを勧めており、すべてのページに入れる必要はないとしています。ネットショップ向けの返品・配送・会員プログラム(hasMerchantReturnPolicy など)は、このプラグインの対象外です。

Role から Schema.org プロパティへの変換(role_to_property)

Custom モード(他プラグインの既存スキーマに著者情報を紐付ける出力方式)では、各エンティティの role フィールド値が class-shortcode.php の role_to_property() メソッドで Schema.org のプロパティ名に変換され、対象ノードに付与されます。対応表は以下のとおりです(大文字小文字は区別されません)。

入力 role 値(小文字化後) 出力プロパティ名
author / writerauthor
publisherpublisher
editoreditor
reviewerreviewedBy
contributorcontributor
creatorcreator
sponsor / fundersponsor
translatortranslator
上記以外(未定義値・空文字)author(フォールバック)
Standard モードでは role は参照されません

Standard モード(ページ本文の直後に独立 JSON-LD を出力する方式)では、@graph に Person / Corporation / Organization ノードを並べるだけで、Article 等への紐付けは行いません。そのため role_to_property() はショートコードの mode="custom" 時にのみ使われます。

パネルのデザインとカラー

各エンティティの HTML パネルの見た目は、「パネルのデザイン」(形)と「パネルのカラー」(色)の 2 項目で決まります。v1.0.2 までは 1 つの「パネルデザイン」に形と色(Dark)が混在していましたが、v1.0.3 で 2 項目に分けました。形と色を別々に選べるため、たとえば「カードの形でダーク」のような組み合わせも選べます。CSS は public/css/panel-style.css に定義されており、表示に JavaScript は使用しません。

パネルのデザインとカラーの組み合わせ見本
デザインとカラーの組み合わせ見本(上から 標準・アクセント・ミニマル・カード × おまかせ、標準 × ダーク、カード × ブルー、アクセント × グリーン、アクセント × オレンジ、カード × カスタム)

パネルのデザイン(panel_style)— 形

管理画面の表示名 value CSS クラス 形
標準(枠線)default(既定).kapm-style-default背景あり、細い枠線、角丸 6px
アクセント(左に太線)accent.kapm-style-accent枠線なし、左端に 4px のアクセント色の線、角丸なし。ラベルもアクセント色
ミニマル(下線のみ)minimal.kapm-style-minimal枠線・角丸なし、下線のみ。カラーを指定したときは左右にも余白が付きます
カード(影付き)card.kapm-style-card枠線なし、10px 角丸、シャドウ 0 2px 12px rgba(0,0,0,.08)。ラベルはアクセント色の大文字表記

パネルのカラー(panel_color)— 色

管理画面の表示名 value 配色
おまかせ(デザインに合わせる)auto(既定)デザインごとの標準配色。標準=背景 #f9f9f9・枠線 #e0e0e0、アクセント/カード=白背景、ミニマル=背景なし・下線 #eee。アクセント色は #0073aa。v1.0.2 までの見た目と同じです
グレーgray背景 #f9f9f9・枠線 #e0e0e0(どのデザインでも同じ配色)
白white背景 #ffffff
ダークdark背景 #2b2d42・枠線 #5c6080・アクセント #8ecae6・白系の文字。背景に対し全テキスト 4.5:1 以上(WCAG AA)
ブルーblue背景 #eef5fb・枠線 #c5dcef・アクセント #0a5b8c
グリーンgreen背景 #eff7f0・枠線 #c7e3cc・アクセント #2d6a35
オレンジorange背景 #fff6eb・枠線 #f3d2a8・アクセント #a3540a
カスタム(色を指定)custom背景色・文字色・アクセント色の 3 色を自分で指定します。枠線や補助の文字色は、背景色と文字色を混ぜて自動で作られます
名前の文字色

明るい配色(おまかせ・グレー・白・ブルー・グリーン・オレンジ)では、名前のリンク色はテーマの設定に従います。ダークとカスタムでは、背景に対して読めるよう、名前の色もパネル側で指定します(ダーク=白、カスタム=文字色)。

カスタムカラーの指定

「パネルのカラー」で カスタム(色を指定) を選ぶと、その下に 背景色・文字色・アクセント色 の 3 つのカラーピッカーが表示されます(ほかのカラーを選んでいる間は非表示)。指定した色は、カードの style 属性に CSS 変数(--kapm-bg / --kapm-text / --kapm-name / --kapm-accent)として出力されます。

空のままにした色は既定値(背景 #ffffff・文字 #333333・アクセント #0073aa)になります。文字が読みにくくならないよう、背景色と文字色の明るさに十分な差をつけてください。

v1.0.2 までの「Dark」を使っていた場合

以前の保存値 panel_style = dark は、v1.0.3 では デザイン=標準・カラー=ダーク として読み替えて表示されます(データの書き換えは不要)。編集画面を開くと、この組み合わせが選ばれた状態で表示されます。以前の Dark にあった左の太線が必要な場合は、デザインを「アクセント(左に太線)」に変えてください。

エンティティごとに個別設定

デザインとカラーは エンティティごとに保存されます。同じ記事に Person と Corporation を並べて、それぞれ異なるデザイン・カラーを適用することもできます。画像の形(丸・四角・楕円など)は記事ごとにブロックで選びます(ショートコード&ブロック参照)。

使用中の記事の確認

Person / Corporation / Organization の 編集画面下部に「使用中の記事」セクションが表示されます。そのエンティティを参照している投稿を自動検出して一覧表示する機能で、削除前の影響範囲確認に使えます。

実装は KAPM_Database::get_posts_using_entity() にあり、2 段階で記事を絞り込みます。

1

SQL LIKE で候補を抽出:wp_posts.post_content に "persons":" / "corporations":" / "organizations":" の文字列パターンを含む行を LIKE 検索します。post_status = 'publish' に限定されるため、下書き・非公開・予約投稿・ゴミ箱は検出されません。

2

parse_blocks() で再帰的に照合:候補記事ごとに parse_blocks() を実行し、block_tree_contains_entity() が innerBlocks を再帰的に辿ります。Group / Columns / Row / Reusable など ネストされたコンテナブロック内に配置された kapm/author-panel も検出対象です(v1.0.1 で追加)。

検出対象の制限

この逆引きは Gutenberg ブロック経由の参照のみを対象とします。ショートコード [author_panel persons="..."] で参照している場合、ブロック属性の JSON 形式とはパターンが一致しないため 検出されません。また、公開済み(publish)以外の投稿ステータスも対象外です。ネストブロック(Group / Columns 等)内の著者パネルは v1.0.1 以降で検出されます。

削除前の確認

エンティティを削除する前に、必ず「使用中の記事」セクションを確認してください。削除された ID を参照しているブロックはフロント側で「表示するエンティティ無し」として空出力になります(エラー表示ではなく、パネル自体が消える)。

保存・削除処理のセキュリティ

3 つのエンティティすべてに対して、保存と削除のたびに nonce 検証と capability チェックが行われます。具体的なアクション名は以下のとおりです。

操作 nonce アクション名 nonce フィールド名
Person 保存kapm_save_personkapm_person_nonce
Person 削除kapm_delete_personURL の _wpnonce
Corporation 保存kapm_save_corporationkapm_corporation_nonce
Corporation 削除kapm_delete_corporationURL の _wpnonce
Organization 保存kapm_save_organizationkapm_organization_nonce
Organization 削除kapm_delete_organizationURL の _wpnonce
管理画面全体の権限

管理画面の表示と保存・削除は current_user_can('manage_options')(管理者権限)でガードされています。REST API は編集者以上(edit_posts)で参照可能です。詳細は トラブルシューティングの REST API 仕様を参照してください。

アンインストール時のデータ削除

プラグイン削除で 3 テーブルが完全削除されます

WordPress 管理画面でプラグインを 削除すると、uninstall.php が実行され {prefix}apm_persons / {prefix}apm_corporations / {prefix}apm_organizations の 3 テーブルが DROP TABLE IF EXISTS により完全に消去され、テーブル構造のバージョンを記録するオプション kapm_db_version も削除されます。無効化(deactivate)では削除されませんが、削除(delete)は復元不可です。エンティティデータを保全する場合は事前に wp db export 等で必ずバックアップを取ってください。

エンティティの登録から表示までの流れ
エンティティ登録から記事への挿入・JSON-LD 出力までの流れ