もしかしてこれ、WPの更新画面からアップデートするとキャッシュディレクトリのパーミッションを元に戻されるんじゃないだろうか…。
何かの拍子に変わってしまってDownload Managerが正常に動かなくなっていたようだったものの、とりあえず設定し直してみた。
詳しく調べていないのでなんとも言えないけれど、トリガーになるような事がプラグインのアップデートくらいしか思いつかない。
もしかしてこれ、WPの更新画面からアップデートするとキャッシュディレクトリのパーミッションを元に戻されるんじゃないだろうか…。
何かの拍子に変わってしまってDownload Managerが正常に動かなくなっていたようだったものの、とりあえず設定し直してみた。
詳しく調べていないのでなんとも言えないけれど、トリガーになるような事がプラグインのアップデートくらいしか思いつかない。
タイトルの通りです。
それ以上でもそれ以下でもありません。
例によってfunctions.phpに書けばそれで事足りるコードをわざわざプラグイン化したやっつけな代物です。
post_statusが’new’,’draft’, ‘auto-draft’から’publish’へ遷移する際に動作し、同時にステータスを’private’へ書き換えます。
普通にWPを使っている状況ではあまりこれが必要になる事は無いと思うのですが、企業サイトとかで担当者がどうの確認がどうの、素人が作業するのがどうのとかそういう変わった事情向けです。
効果としては、新規投稿から直接公開される事が無くなります。(裏技的にできますが、そういう意図の機能では無く、あくまでワンクリックで『公開されてしまう』事を避ける為のモノなので…)
※中身のお話
処理的に、post_statusが「publishに書き換えられた瞬間の後」に再度privateに上書きするようになっています。
類似のフック等を見ても、書き換える前にこれを妨害する事ができるような部分が見当たらなかったのでそうなっています…が、何かいい方法あったら教えてもらえると喜びます。
2014 9/19 追記
WordPressの公式プラグインディレクトリに登録しました。
今後、ダウンロードはそちらから行なって下さい。
はい、もはやなんのサイトだかよく解らなくなっているチラシの裏です。
WordPressを使っていて、デフォルトのパーマリンク設定でURLを設定している人はそう多くないのではないかと思うのですが(普通はクエリ方式避けますよね?)、そういう時に例えば固定ページ等のURLに日本語を含むマルチバイト文字が入ってURLエンコードされるとか、そういう所を気にする人がいるのです。
個人的には、日本語URLはべつにアリだと思うのでどうでも良いのですけれど(むしろ無作為採番等より余程いいと思っています)、クライアントの中にはそうではない人も居るわけで…。
Slugを英数字で設定すれば良いだけの事なのですが、毎度毎度タイトルを入力した後にSlugを別途入れてくれと指定しても守ってもらえるとは限らないうえに、もし自分で大量のページを作る等となった時に手動なんてめんどくさい訳です。
で、どうするかといえば、普通にやるならfunctions.php等に作りおきの関数をコピペするだけなのですが、中にはPHPのコードを見るのすら嫌な人も居る訳で…。
ということで、仕事でなんとなく作った簡素極まりない関数を物凄く単純にプラグイン化したというやっつけ仕事なこのプラグインを投げつけておくという結論に至りました。
前置きが長いですが、要するにプラグインの挙動としては、新規post時のSlug自動生成の際に、マルチバイト文字が入っていた場合は自動的に”post_type-post_id”の形式で生成し直してくれるというただそれだけのモノです。
WordPressの内部的な言い方をすると、post_statusが’draft’, ‘pending’, ‘auto-draft’の時に上記の動作をします。
つまり、記事公開後及び非公開状態、公開予約状態においては無効となるので、新規作成の時以外の場合は意図的にURLエンコードの入るマルチバイト文字を使用したSlugを設定することができるという事になります。
一応多言語対応になっているので、readme.txtやら用意すれば公式のプラグインディレクトリに投げる事もできるのでしょうが、なんせ英語リソース作るのが面倒なので多分余程暇じゃなければこのままになりそうです。
2014 9/19 追記
WordPressの公式プラグインディレクトリに登録しました。
今後、ダウンロードはそちらから行なって下さい。