開発者向けに、WP Notepad の保存形式・フック・REST API・オプションをまとめています。
保存先と保存キー
メモは閲覧者のブラウザの localStorage に保存されます。キーは設置形態ごとに次のとおりです。
| 設置形態 | 保存キー |
|---|---|
| クラシックウィジェット | {widget_id}-textarea |
| ショートコード | id 属性の値(省略時は自動採番) |
| ブロック | wpnotepad-block-{notepadKey} |
| タブ(2つ目以降) | {基本キー}-tab-{N} |
保存形式
メモはタイムスタンプ付きの JSON エンベロープで保存されます(v2.0.0 以降)。旧バージョンが保存した素の文字列も透過的に読み込まれます。
{ "v": 1, "time": 1750000000000, "value": "メモの内容" }
timeはエポックミリ秒。保存期限(TTL)の判定とデバイス間同期の競合解決(後勝ち)に使用します。- テキストエリアの
data-ttl(日数)が設定されている場合、now - timeが超過したメモは読み込み時に自動削除されます。
フィルター
| フィルター | 説明 |
|---|---|
wpnotepad_widget_textarea | ウィジェットが出力するメモ帳のマークアップ全体(タブバー・テキストエリア・ツールバー・ステータス)を受け取り、加工できます |
wpnotepad_widget_description | ウィジェットの説明文(Description)の出力を加工できます |
/**
* ウィジェットのメモ帳マークアップを加工する例
*
* @param string $markup メモ帳のマークアップ全体。
*/
add_filter( 'wpnotepad_widget_textarea', function ( $markup ) {
return '<div class="my-notepad-wrap">' . $markup . '</div>';
} );
REST API(デバイス間同期)
オプトインのデバイス間同期は、名前空間 wp-notepad/v1 の REST API を使用します。同期が有効かつログイン済みの場合のみ利用でき(Cookie 認証 + X-WP-Nonce ヘッダー)、それ以外は 401 / 403 を返します。
| エンドポイント | メソッド | 説明 |
|---|---|---|
/wp-json/wp-notepad/v1/notes | GET | ログインユーザーの全メモを取得 |
/wp-json/wp-notepad/v1/notes | POST | メモを保存(key / value 必須、time 任意) |
/wp-json/wp-notepad/v1/notes/{key} | DELETE | 指定キーのメモを削除 |
- サーバー側の保存先はユーザーメタ
rwc_wpnotepad_notesです。 - フロントは
window.wpNotepad(同期有効時のみrestUrl/nonceを含む)を参照し、タイムスタンプ比較の後勝ちで同期します。
オプション
| オプション名 | 値 | 説明 |
|---|---|---|
rwc_wpnotepad_sync_enabled | 1 / 0 | デバイス間同期の有効・無効(既定: 無効)。「設定 → WP Notepad」で切り替え |
アンインストール
閲覧者のメモはブラウザ側(LocalStorage)にあるため、プラグインを削除してもサイト側から消えることはありません。サーバー側のデータ(オプション rwc_wpnotepad_sync_enabled と、同期を利用していた場合のユーザーメタ rwc_wpnotepad_notes)は現バージョンでは削除処理を行わないため、完全に除去する場合は手動で削除してください。