イントラネットからしか投稿できなくしたいのです
ウェブサーバー (Apache など) 側で、wp-admin/ ディレクトリーおよび wp-login.php に対して IP アドレス制限をかける手があります。この方が素直ですし、簡単に実現できますよ。ただし、ウェブサーバー管理者に相談する必要がありますが、目的が目的だけに対応してもらえるでしょう。
トピック投稿者
suga
(@suga)
lilyfanさん 回答ありがとうございます
apacheでの制限はこちらでも考えたのですが
WindowsLiveWriter での投稿で運用しているので
wp-login.phpやwp-admin Directoryをapacheで制限しても
だめだったのでプラグインがないか探しています
WindowsLiveWriterでの制限をapache側でかけれる方法が何かあれば
教えてください
WindowsLiveWriterでの制限をapache側でかけれる方法が何かあれば
なるほど、XML-RPC クライアントの投稿があるわけですね。それだと、xmlrpc.php も IP アドレス制限の対象にすればよいかと思います。
この手の、他の人はまず使わないような制限等のプラグインは無いと思います。
でも自分でプログラムをちょこっとさわれば出来ると思います。
if ( preg_match ( "/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/", $_SERVER["REMOTE_ADDR"] , $ips ) ) {
// たとえば 内部ネットワークが 192.168.0.0/24 なら
if ($ips[1]==127 && $ips[2]==0){
// これはOKです ローカルアクセス
} elseif ($ips[1]==192 && $ips[2]==168){
// これはOKです イントラネット
} else {
wp_die( __('Sorry, This Contents is Members Only!.') );
exit;
}
}
みたいなコードを目的のプログラムの適当な場所に貼り付けてやれば…..(^-^)
外していたらごめんなさい!
みたいなコードを目的のプログラムの適当な場所に貼り付けてやれば…..(^-^)
元質問は、コンテンツの閲覧は全世界に許可していて、投稿だけ制限をかけたいという内容です。このため、当該コードを入れるとしたら、「投稿時にだけ実行される部分」に入れることになります。そうなると、wp-login.php ないし xmlrpc.php に入れればよいでしょうか。
あと、イントラネットが IPv6 の場合はこのままでは使えないので、大幅な修正が必要ですね 😉 (さすがにイントラネットをすべて v6 にしている組織は少ないでしょうが)。
トピック投稿者
suga
(@suga)
takepieroさん、lilyfanさん 回答ありがとうございます
返事が遅れてすいません
wp-login.php と xmlrpc.php にスクリプトをいれこむことで
できました
WindowsLiveWriterからはxmlrpc.phpになるのですね
ありがとうございました