WordPress プラグイン

Watrix Freedom Pages のアイコン

Watrix Freedom Pages

バージョン v1.0.1

テーマの外側に、そのまま置ける。

AIやデザインツールで作ったHTMLを、テーマのヘッダー・フッターを通さずそのまま公開する。任意のURLパス配下に静的ファイルを配信する。WordPressの中に、WordPressじゃない場所をつくるプラグインです。

ZIPをダウンロード動作要件を見る

GPL-2.0-or-later / 無料 / 会員登録不要

Watrix Freedom Pages のバナー。管理画面の隣にHTMLソースが並び「Theme bypassed」と表示されている

2つの機能

自由ページ

本文に貼り付けたHTMLを、テーマのheader/footerも the_content フィルタも通さずそのまま出力します。`<!DOCTYPE html>` から始まる完全なHTMLならバイト単位でそのまま、断片なら文字コードとビューポートだけ補います。エディタはTinyMCEではなく等幅のテキストエリアなので、マークアップが勝手に整形されません。

自由パス

`/lp/summer-campaign/01/` のような任意のURLパスを管理画面から登録すると、その配下がまるごと静的ファイルの置き場になります。FTPでも管理画面のアップローダーでも配置でき、ETag と Last-Modified を返すのでブラウザやCDNが正しくキャッシュします。

.htaccess を触らない

ルーティングは PHP の parse_request で処理します。サーバー設定を書き換えないので、Apache・Nginx・LiteSpeed のどれでも同じように動き、設定ミスでサイト全体が落ちる事故が起きません。

メディアライブラリを汚さない

自由パスのファイルは `uploads/watrix-freedom/` 配下の独立したディレクトリに置かれ、メディアライブラリには現れません。単発のLPが通常のコンテンツ運用に混ざりません。

画面を見る

管理画面から公開までの流れを、実際の画面で確認できます。

WordPress管理画面の自由ページ編集画面。等幅フォントのテキストエリアに生のHTMLが入力されている

自由ページの編集画面

等幅のテキストエリアにHTMLを貼り付けるだけ。TinyMCEを通さないので、マークアップが勝手に整形されません。

テーマのヘッダーもフッターも無い、貼り付けたHTMLだけが表示されているページ

テーマを介さない表示

公開すると、テーマのヘッダー・フッターを一切通さずに、書いたHTMLがそのまま表示されます。

自由パスの設定画面。登録済みのURLパスと保存先ディレクトリ、ファイルのアップローダーが一覧表示されている

自由パスの設定画面

URLパスを登録すると、その配下がまるごと静的ファイルの置き場になります。アップロードも管理画面から行えます。

自由パスから配信されているキャンペーン用ランディングページ

配信される静的ページ

登録したパスの下に置いたHTML・CSS・画像が、WordPressが無いかのようにそのまま配信されます。

こんなときに

  • AIに書かせたHTMLのLPを、テーマの制約を受けずに公開したい
  • キャンペーン用の1枚ページを、本体サイトと同じドメインで出したい
  • デザイナーから受け取った静的HTMLを、そのままの見た目で載せたい
  • サブドメインやサーバーを増やさずに、独立したページを足したい
セキュリティ設計

テーマを迂回する以上、権限とファイルの扱いは慎重に設計しています。

権限はWordPressコアと同じ境界

自由ページの公開と、ブラウザで実行される形式(.html / .htm / .js / .mjs / .svg / .xml)のアップロードには、`manage_options` に加えてコアの `unfiltered_html` 権限を要求します。`unfiltered_html` はコア自身が「投稿本文をフィルタするかどうか」を判定するのに使っている権限です。ここに合わせることで、本プラグインがコアの許容範囲を超えたマークアップを公開することは原理的にありません。

マルチサイト・DISALLOW_UNFILTERED_HTML に自動追従

マルチサイトではネットワーク管理者のみが対象になり、サイト管理者は自由ページを公開できません。`DISALLOW_UNFILTERED_HTML` を定義したサイトでは全ユーザーが対象外になります。プラグイン側に独自の設定はなく、有効化し直す手段もありません。

実行可能ファイルは二重に拒否

`.php` `.phtml` `.phar` `.cgi` `.py` `.sh` などの実行系拡張子は、アップロード時と配信時の両方で拒否します。`shell.php.png` のような二重拡張子も、ドット区切りの全セグメントを検査して弾きます。加えてMIMEの許可リストに載っている形式だけを配信します。

パス操作を全経路で検証

ディレクトリトラバーサル、ヌルバイト、ディレクトリ脱出は、管理画面で登録するパスと、実行時にリクエストされるサブパスの両方で拒否します。最終的に解決された実パスが `uploads/watrix-freedom/` の内側にあることを毎回確認してから配信します。

WordPress.org で配布していない理由

このプラグインは WordPress.org の公式ディレクトリには掲載されていません。審査で「任意のHTML/JavaScript/CSSを公開できるカテゴリのプラグインは、新規には受け付けない」という方針により却下されたためです。

私たちはこの判断に対して、コア自身が管理者に `unfiltered_html` 権限を与えており、通常の投稿本文にスクリプトを書けることを根拠に再考を求めました。審査チームからは「その指摘は正しく、以前の説明は言い過ぎだった」という訂正を受けたうえで、それでもポリシーとして新規受理はできない、という最終回答を得ています。

やり取りの中で、私たち自身も見落としていた権限の穴(マルチサイトでサイト管理者がコアより広い権限を持ってしまう問題)を発見し、v1.0.1 で修正しました。掲載されないことになった今も、その修正は入っています。

つまりこれは、審査に落ちたから雑なものだ、という話ではありません。ディレクトリの受入方針と、このプラグインの目的が噛み合わなかった、という話です。中身に納得いただけた方に、ここから直接お渡しします。

導入方法

  1. 1

    ZIPをダウンロード

    このページのダウンロードボタンから ZIP ファイルを取得します。

  2. 2

    WordPressにアップロード

    管理画面の「プラグイン > 新規追加 > プラグインのアップロード」からZIPを選び、インストールして有効化します。

  3. 3

    使いはじめる

    サイドバーに「Freedom Pages」が追加されます。「自由パス」でURLパスを登録するか、「自由ページ」で新規ページを作成してHTMLを貼り付けてください。

動作要件

WordPress
6.0 以上(7.0 で動作確認)
PHP
7.4 以上
ライセンス
GPL-2.0-or-later
対応言語
日本語 / 英語
料金
無料

ダウンロード

会員登録もメールアドレスの入力も不要です。そのまま使いはじめてください。

ZIPをダウンロードv1.0.1

GPL-2.0-or-later でライセンスされています。改変・再配布も自由です。

サポート

不具合の報告・機能のご要望・導入のご相談は、お問い合わせフォームからお送りください。WordPress.org のサポートフォーラムは利用できないため、こちらが窓口になります。

お問い合わせ
お問い合わせ
カエル