Category Archives: WordPress

WordPressの添付ファイルの差替え

国際会議のサイト構築の担当になり、WordPressで構築した。

CFPなど、いくつPDFの添付ファイルがありました。そのPDFファイルは結構頻繁に更新する。

更新するファイルをもう一度添付すると、URLが変わり、本文からのリンクも直す必要。手続き面倒な上、そもそもURL変わる自体も好ましくない。

たまたまEnable Media Replaceというプラグインに出会った。

https://wordpress.org/plugins/enable-media-replace/

ファイルをアップロードするだけで差替えるので、簡単そう。

Windows Live WrightがWordPressに接続できない。

かなり前からWLWでWordPress書く習慣があるが,最近一部のWordPressサイトはwlwに接続できない問題発生,サーバー側に接続しようとすると以下のようなメッセージが表示され接続(投稿)出来ない。
———————————————————————————————————————

ログイン中に予期しないエラーが発生しました。
サーバーの応答が無効ですーブログサーバーから受信した
blogger.getUsersBlogsメソッドへの応答が無効です。
invalid response document returned from XmlrRpc server

———————————————————————————————————————

原因はXML-RPC戻るXMLテキストの最后は破损。なんどもGoogleしたが、対策が見つからなかった。今天は遂に解决した。

オリジナルの対策は以下リンクにあるようです:

https://www.corelan.be/index.php/2008/10/14/windows-live-writer-unable-to-connect-to-wordpress-blog/

This is caused because something (a plugin ? my webserver (IIS) ? something else ?) decided to add UTF-8 BOM to the XML-RPC response. Result : the xml response is 3 bytes longer than expected, which causes the xml response to be truncated.

原因はIISの问题らしい。しかしこちら使うのはLAMP,でも対策は有効だ。

解決策:
(1)wp-includesパスにclass.IXR.phpファイルをみつけ,
(2) $length = strlen($xml);  を $length = strlen($xml)+3 に書換え

BuddyPress 1.8 Release

BuddyPressは初級リリースから世話になったが、いまでも遺跡のサイトが沢山存在している。

BuddyPress のバージョン1.65まで、専用テーマ、もしくはBuddyPress Template Pack pluginを利用するなど、特別な対応が必要がである。

BuddyPress のバージョン1.7から、特製テーマ不要になり。時間がないためその件放置していた , BuddyPress 1.8へupgradeするきっかけに、BuddyPress Template Pack pluginを外して見た。

それを外した途端、画面にBuddyPressスタイルが消えた、どうしたらいいか、途方に暮れる!

BuddyPress のバージョン1.7から新規設置したサイトと比べると、設定など特に違いないし、なぜupgradeしてきたサイトが、BuddyPressスタイルが消えているかわからない。

Googleしたら、BuddyPress Template Pack pluginが、テーマファルタにいろいろ子フォルダを追加したとわかった。関連子フォルダ消すなど対策をしてた。それなら、一層テーマを完全に消して(つまりテーマフォルダを消す)、再度新規インストールしたら、依存BuddyPressスタイルが再度入れ直すになるので、問題解消になると思う。

早速管理画面からテーマを停止、テーマファイル削除、テーマ新規インストールをしてみたら、BuddyPressスタイルが効いて来た。

WordPress Brute Force Attacksにリソース使われない対策

4月頃から、WordPressを標的とする Brute Force Attacks が激しい!

自分のサーバも度々リソース使い果たされ、数度サービス停止に追い込まれました。

対策がとっても、更に大規模なアタックが押し寄せる。

WordPress公式サイトには、一応対策が書いてある。

http://codex.wordpress.org/Brute_Force_Attacks

しかしそれらの対策は、ハッキングされる危険が減るもので、サーバのリソースがたくさん使われることが変わりがない、リソース使い果たされる危険がまたある。

ネットでいろいろ調べるところ、ログイン自体を制限する方法が有効と考えられる。

早速.htaccess に下記のようにIP制限してみる。

RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^118\.9\.70\.195$
RewriteRule ^(.*)$ – [R=403,L]

なぜか効かない!そこでApacheの設定で、ログイン自体を制限する試みる。

<Files ~ “^wp-login.php”>
Order allow,deny
Deny from all
Satisfy All
</Files>
ErrorDocument 403 “Not acceptable”

確かアタックに効く!リソースも使われない。けど、使いたいときは、外さないとログインできない!

一層Basic認証と、IP制限を組み合わせしてみた。最終の形はこうでした。

<Files ~ “^wp-login.php”>
Order deny,allow
Allow from 118.9.70.195
Allow from 192.168.1
Deny from all

AuthUserFile /var/www/.htpasswd
AuthGroupFile /dev/null
AuthName MembersOnly
AuthType Basic
require valid-user

Satisfy Any
</Files>
ErrorDocument 403 “Not acceptable”

これて、許容IPなら制限なし、その他IPからの場合Basic認証の画面がポップアップ。リソースも使われない対策できた。

WordBench 2012 参加

開催日時は、
2012年7月1日(日曜日)
13:00 開場
13:00-13:30 受付
13:30-17:30 第一部 勉強会(無料)
18:00-20:00 第二部 ユーザー交流会(GMOさんのご協力で飲食を含め無料です)

wordbench0701d

CMSとSEO の相性, レスッポンシブデザイン, スニペット, 子テーマ, VPS は SEO に 効くなど、いろいろと勉強になった半日でした。

WordPress 3.4 Release

このリリースには、テーマカスタマイズ、カスタムヘッダー、Twitter埋め込み、画像キャプションの大きな改善が含まれています。

http://ja.wordpress.org/2012/06/14/wordpress-3-4-green/

裏側ではPost クエリーが改善され、特に大きなデータベースを持つサイトでのパフォーマンスが改善され、自分の漢詩データベース ( http://poemdb.org/ ) は確かに反応が早く感じた。

iOSに関して、iOS5ではTwitter埋め込み;iOS6にFacebook埋め込み予定と発表された。

Twitter、Facebookは、ソーシャル・メディアの主役として、生活のあらゆる面で浸透していく様子がうかがえる。

ちなみに中国政府はTwitter、Facebookを禁止することは、21世紀の鎖国に等しい行為と思う。

[WordPress]プログラミングの日々

Twitter Stream検証のため、一月から今日までもSVNに200個以上のコミットした。

こんな一杯プログラミングしたのは、久しぶりでした。

研究室の後輩に、PGできるまたは進んで挑戦するものがいないので(いい勉強になると思うけど)、何でもかんでも、殆ど自力ですることになった。

ちょっと貴重なD5研究の時間が、PGに潰したことが勿体無いでした。D論書く時間が減っていく。実験結果を得るため、やむ終えないけど…

Twitter Streamをリアルタイムに取得するため、一番苦労なところ。

主な処理はWordPressベースに行うため、最初Twitter Stream取得もそのベースで行った。しかしリアルタイムに弱いので、実用ではなかった。仕方なく別途PHPでPGすると、収集したデータはWordPressのDBに結合することはまた困難な作業でした。

今日もこの問題に悩んでいた。Globalのインスタンスが、なぜかWordPressの関数に読み取れない!つまり、下記のプログラムは単体でちゃんと表示できたけど、WordPressのプラグインに組み込まれると、空表示になり、なんてだろう!

<?php

$mydb = new MyDbClass ( $wpconfig );

function mydb_test() {
        global $mydb;
        echo “mydb__test : db_host = ” . $mydb->db_host . “; db_user = ” . $mydb->db_user . ” <p>”;
}

mydb_test();

?>

BuddyStreamを試す(1)

http://wasedalive.com/ 使っているTweetstream, Facestreamが最近動作がおかしい。Tweetへ送れない、またはFaceから取りこめない問題はよく発生する。

実験データほしいから、ちょっと時間を取って、調べてみた。

まず、Twitter関連のPluginを見て、なにか新しいあるかと、Buddystream という、よさそうなプラグインを発見。試そうかと、いきなりエラーでサイトダウン。Tweetstreamと定義が重複のところがあるため。一旦ファイル削除でサイト復帰。

別のサイトでためすかとするところ、Tweetstreamの作者が Tweetstreamすでに no longer supported。代わりのBuddystream を使いなさいって!って作者が言うのために。

早速Tweetstreamを外して、Buddystream を入れる、だが、Buddystream がまともに動かない。Cron Jobを利用する必要がある見たい。そかしそのCron Job出力もない。どうすれば、作者のサイトhttp://buddystream.net/ からも解答が見当たらないので、一旦中止。

http://wasedalive.com/ を元のTweetstream, Facestreamに戻した。

研究用実験ペアサイト

WordPress+BuddyPress+StatusNetでサイト構築、リモートFollow、を実現するため、下記の研究用実験ペアサイトを構築しました。

WasedaLive:  http://wasedalive.com/
Nislab3: http://nislab3.human.waseda.ac.jp/

いまのところ、代表のSNSサイトFacebookとTwitterとの連携ができて、これからStatusNetと組み合わせて、さらに機能向上と考えています。

興味あるが、一緒にチャレンジしたいゼミ生、是非連絡して下さい。