タグ » wordpress «

2010/03/13 土曜日 | 投稿者: aqua

こんばんは、aquaです。

本ブログへgoogleからの誘導が激減してから約一ヶ月、しばらくはPVの改善も見込めなそうなので、思い切って携帯対応してみた。携帯コンテンツであれば、また別の評価がなされるかもしれないし。どうやらwordpressのモバイル対応はプラグインによって簡単に実現できそうだ。今回は『Ktai Style』という評判の良いプラグインを使う事にした。いつも通りダウンロードして解凍したファイルを${WORDPRESS}/wp-content/pluginディレクトリに配置し、『プラグインの管理』画面でktai styleの欄で『使用する』をクリックする。

プラグインを有効化すると、『設定』と『テーマ』というリンクが選べるようになる。まず設定から確認したが、特に気になる設定箇所はなかった。次にテーマを見てみると、最初から幾つかのテーマが用意されていた。『photolog』というものが最も好みだったので、これを選択してみた。『コメントなし』がやたら目立つので少しだけ内容をいじった(wp-content/plugins/ktai-style/themes/photolog/index.html)。コメントへのリンクを削るのと(38行目辺り)、スペースが出来たので記事サマリーの文字数を増やした(43行目辺り)。

コンテンツが出来たところで、今度はモバイル用のsitemapを作成する。プラグインの改造もやってみたかったが、今回は時間をかけずに生成されたsitemap.xmlを変換して構築する。大した変換は必要なく、以下の変更を行えばよさそう。ファイルはsitemap-mb.xml.gzとして保存する。

xmlnsの箇所にxmlns:mobile=”http://www.google.com/schemas/sitemap-mobile/1.0″の追加
urlの箇所にの追加

our @input;
our @output;
our $file;
our $root_dir="${WORDPRESS}";
our $source="sitemap.xml";
our $mobile="sitemap-mb.xml";

open(IN, "<$root_dir/$source"); open(OUT,">$root_dir/$mobile");
while(<IN>){
        s/(xmlns=\".*\")>/$1 xmlns:mobile=\"http:\/\/www.google.com\/schemas\/sitemap-mobile\/1.0\">\n/;
        s/<\/url>/      \n     <\/url>/;
        print OUT;
}
close(IN);
close(OUT);

my $src_file="$root_dir/$mobile";
my $zip_file="$root_dir/$mobile.gz";
gzip $src_file => $zip_file;

以上の設定でしばらく運用していると、googleのウェブマスターツールでHTTPエラー(400 bad request)が多く発生していた。調査してみると、これはktai styleの仕様らしいので、robots.txtで該当の処理をクロールされないように設定する。具体的には以下のように設定した。

User-agent: *
Disallow: /wp-content/plugins/ktai-style/inc/redir.php

以上で、本ブログを携帯でも使う事が可能となった。

カテゴリ: 技術系  | タグ: , ,  | コメント
2010/02/22 月曜日 | 投稿者: aqua

こんばんは、aquaです。

先日のURL改変について、ほぼ全ての旧URLを新URLに301リダイレクトするように設定出来た。数日が経過した後、googleウェブマスターツールにて状況を確認してみる。しかし、残念ながらタイトルタグの重複数は減少していない。状況を正確に確認するためにアクセスログを見ながら、実際に旧URLをクリックしてみる。間違いなく新URLに転送されているが・・・、よく見てみるとリダイレクトのHTTPステータスコードが『302』になっている。ソースを確認し、『ylsy_permalink_redirect.php』ファイルの405行目を以下のように修正。

function wp_redirect($location, $status=302) {

function wp_redirect($location, $status=301) {

これで、今度こそ301でリダイレクトするようになった。次にクロールエラーを確認してみると、数百件に及ぶ『クロールを完了できませんでした』というエラーと更に十件強の『見つかりませんでした』エラーが発生している事に気付く。中身を確認してみると、幾つかの投稿ページのうち、タイトルを変更したページの旧タイトルが404としてリストされている。それほど数もなかったので『Redirection』プラグインにて、新タイトルにリダイレクトするよう個別に設定していく。

今回は念のため、アクセスログにてHTTPのステータスコードを確認する。旧URLをクリックしながら、アクセスログをウォッチしていると妙な動きが目に入った。旧タイトルが新タイトルにリダイレクトしているのは想定通りだったのだが、投稿ページへのアクセスが大文字含むURLから全て小文字のURLへと301リダイレクトされている。気になったので、ウェブマスターツールにて先ほどの『クロールを完了できませんでした』ページを見てみると、全て投稿ページで『リダイレクトエラー』と表示されている。

とにかく、このリダイレクトが悪さをしていると判断。どのプラグインで処理がなされているかの特定から調査を始める。各プラグインを有効・無効を切り替えていく方法で、すぐに『Permalink Redirect』の問題とわかった。かと言って、プラグインを止める訳にも行かないので回避方法を検討。Permalink Redirectのページ内に『Paths to be skipped』という設定を行う箇所があった。うちのサイトは投稿ページのURLが『/%category%/%postname%/』で、しかもカテゴリが全て日本語のままなので、全ての投稿ページが『/%』で始まる。試しに『/%.*』と設定して動作確認したところ、投稿ページにおける小文字リダイレクトは発生しなくなった。URL改変は本当に怖いね・・・。

カテゴリ: 技術系  | タグ: , ,  | コメント
2010/02/21 日曜日 | 投稿者: aqua

こんばんは、aquaです。

前回のURL改変後より相変わらずPVが回復していない。今度はsitemap.xmlを作成して、検索エンジンに認識して欲しいURLを明示的に伝える事を試す。wordpressでsitemap.xmlを生成するには『google-sitemap-generator』を利用する。こちらよりプラグインをダウンロードしたら、いつも通りプラグインのディレクトリに配置する。wordpressの『プラグインの管理』ページより『Google XML Sitemaps』を有効化する。設定メニュー内にある『XML-Sitemap』にて必要な設定を行った後、『サイトマップを構築する』リンクをクリックすれば生成できる。

生成と同時にgoogleへの通知も行ってくれるが、念のためgoogleの『ウェブマスターツール』でも確認しておく。実は今まで利用していなかったのだが登録は非常に簡単。『サイトを追加』ボタンをクリックして自サイトのURLを登録する。あとは幾つか用意されている確認方法にて正当性をチェックする。今回は一番簡単そうなメタタグによる確認を選択。発行された任意のメタタグを自サイトのトップページに埋め込む。これで確認が済めば検索に関係する様々な情報にアクセス出来るようになる。

適当に情報を見ていると『診断』の『HTMLの候補』ページにて『タイトルタグの重複』が数十件カウントされている。中身を見てみると、投稿ページの旧URLと新URLが幾つも表示されていた。canonicalで処理していたつもりだったけど、余り意味ないのかな・・・。日付ベースだった旧URLからカテゴリベースの新URLに301リダイレクトをする方法を考えてみる。URL内に動的要素があるので、ちょっと悩んでいると『Permalink Redirect』というプラグインを発見。早速、セットアップしてみる。

プラグインを有効化すると『設定』ページに『Permalink Redirect』というリンクが出来るので、そのページで設定を行う。『Old Permalink Structures:』というテキスト・ボックスがあるので、そこに旧URLである『/%year%/%monthnum%/%postname%/』という情報を記載。『Update Options』ボタンで変更を適用し、動作確認をしてみると旧URLはきちんと新URLへ転送される。これで、まずは期待通りの動きとなったので、しばらく様子見てみる事にする。後半へ続く。

カテゴリ: 技術系  | タグ: , ,  | コメント
2010/02/08 月曜日 | 投稿者: aqua

こんばんは、aquaです。

前回ユーザビリティの改善のために各文言の和訳や表示順の入替などを実施した。この変更は図らずもページタイトルのフォーマットにも及ぶ事になった。基本的にはPVを上げるための施策だったが、結論から言うとPVは激減した。正確な因果関係は不明だが、状況としてはgoogleの検索結果順序が大きく落ち込んでしまった。やはりgoogleのクシャミ一つでネット上でのポジションが大きく変わるというのは相変わらずのようだ。以前に運用していたサイトも、この手の問題でやる気がなくなって実質凍結状態にした事を思い出した。他の誘導パス作りをさぼっていたのがいけないんだけどね。

そんな訳で、すっかりPVも減ってしまったので、今まで試せなかった実験的な変更を追加していく。主にSEO対策まとめ系のページを参考にした。カテゴリにシングル・バイトのスラッグを準備していたが、これを日本語に戻した。URL内の日本語がどういう意味を持つか怪しいものだが、とりあえず様子を見てみる。更に記事のURLも『/%year%/%monthnum%/%postname%/』から『/%category%/%postname%/』に変更した。この変更により記事ページのURLが世の中的には重複する事になるので、それを防ぐためのcanonical属性導入を考える。

canonical属性は、検索エンジンに任意の記事について正しいURLを認識させるために使用される。canonical属性の追加には幾つかのプラグインが用意されている。『All in One SEO Pack』を試してみたが、タイトルの変更も行われてしまう。タイトルを処理に任せると日付の表示が『YYYY MM月 DD』のようにイマイチになる。ここは手元で修正したので、canonical属性のみ対応してくれるプラグインに変更する。その名も『Canonical URL’s』。プラグインとしてのインストール以外は何も設定できないツールだが、期待通りきちんとcanonical属性の追加は行われている。

ここまで作業が完了したところで、『404 not found』がちょこちょこ起きている事に気付く。過去のスラッグに対するアクセスが404になっていた。直接『.htaccess』を修正しようかとも思ったが、それ用のプラグインである『Redirection』を発見したので、旧スラッグURLを新スラッグURLに転送するように設定。ここでふと気付いたのだが、外からawstatsへのアクセス可能になっている。awstatsは元々、狙い済ました直接アクセスが非常に多い。調べてみたところ、httpd.confにアクセスを許可する設定が追記されていた。以前にawstatsを再構築した際に、スクリプトか何かで入り込んだのだろう・・・、こわやこわや。

カテゴリ: 技術系  | タグ: , , , , ,  | コメント
2010/01/16 土曜日 | 投稿者: aqua

こんばんは、aquaです。

まもなく100投稿目を迎える我がブログ。100投稿目は何がいいかなあ、とかぼんやり考えてみたりする。2009年を振り返ると、19投稿から70投稿が追加され、89投稿まで増えた。内容の良し悪しはともかく、日次の訪問ユニークユーザー数及びページビューも4倍に膨れ上がった。投稿が4倍近くになったためだろうか。規模に合わなくなった機能を諸々修正する。まずタイトルを見直していく。カレンダーやアーカイブで表示した際のタイトルなどを以下のように修正(※”>>”という表示も削除)。

<title>
<?php
if(is_year()):
	echo get_the_time('Y年');
elseif(is_month()):
	echo get_the_time('Y年m月');
elseif(is_date()):
	echo get_the_time('Y年m月d日');
else:
	wp_title('');
endif;
if(wp_title('', false))echo ' - '; bloginfo('name');
?>
</title>

次に主要な箇所の英語表記部分をコツコツと和訳していった。RSSの表示も『WP Multibyte Patch』というプラグインを利用して抜粋表示に変更。そして、投稿ごとに表示されているadsenseを最初の1記事目のみ表示されるように修正し、サイドバーにもスカイスクレイパー型のadsenseを追加する。広告収入もPVに比例していないので、ちょっとテコ入れしてみた。1記事目だけにする制御は以下のようなコード。

<?php $ad_flg=true;
while (have_posts()) : the_post(); ?>
	<div id="post-<?php the_ID(); ?>">
		:
	記事内容の表示処理
		:
	</div>
	<div align="center">
		<?php if($ad_flg): adsense_deluxe_ads(); $ad_flg=false; endif; ?>
	</div><p/>
<?php endwhile; ?>

最後にナビゲーションの改善に取り組む。何と言っても、まともな投稿ナビが『最近の投稿』のみでカテゴリやタグをクリック時に選択された記事の索引がないのが痛い。数十の記事であればページングしてスクロールしていけば記事を見つけ出せるかもしれないが、100投稿近くになると非常にだるい。そこで、これについてもサイドバーに表示中の記事が一覧できるようなスペースを設ける事にした。カテゴリを選んだ場合は該当カテゴリに所属する記事一覧、タグを選んだ場合も同様である。日付や月単位のアーカイブを選択した場合もそれに対応する。

また、少しだけ設定を捻って1記事しか表示されない場合は、その記事が所属するカテゴリの記事一覧を表示。更に日付で記事を表示する場合も、うちのサイトは必ず1記事になるので同様に処理する事にした。この対応によって、興味のある記事に関連する記事タイトルを一望出来るようになったので、はるかに使い易くなったはず。少しはユーザーの滞在時間に効果があればいいなあ。複数カテゴリに所属するケースなどの課題は残っているが実装コードは以下である。

<ul>
<li><div id="recent-posts-2" class="widget widget_recent_entries">
	<h1>表示中の投稿</h1><ul>
<?php if (is_single() || is_day())
	foreach ((get_the_category()) as $cat)
		query_posts('showposts=20&cat='.$cat->cat_ID); endforeach; ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
	<li><a href="<?php the_permalink() ?>"
		title="<?php the_title(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; else: ?>
	<p><?php _e('該当する記事はありません。'); ?></p>
<?php endif; ?>
</ul>

カテゴリ: 技術系  | タグ: , ,  | コメント
2009/07/25 土曜日 | 投稿者: aqua

こんばんは、aquaです。

既に1年使っているwordpress。プラグインや改造にも大分慣れてきたところで、また苦痛になってきた箇所を修正していく。まず本体のバージョンアップについてだが、管理画面に『バージョンアップしろ』というメッセージが多く、何となく見ててイライラする。前回は手動更新したものの、そもそも自動更新できるはずだから、設定して頻繁にキャッチアップさせたい。どうやらローカルサーバ(wordpress稼動サーバ)上にFTPサービスが必要なので予め起動しておく。FTPはローカル上にあればよいだけなので、NATなどで外側に開放する事はしない。管理画面にてツール→アップグレードで日本語版の方の『自動インストールを実行』をクリック。フォームが現れるので、以下のように埋めていく。

  • ホスト名 → localhost
  • ユーザー名 → USERNAME
  • パスワード → PASSWORD
  • 接続形式 → FTP

USERNAMEとPASSWORDはそれぞれローカルサーバでFTP可能なユーザー名とパスワードを入れる。埋め終わったら『開始』ボタンをクリックして、しばらく待つと完了。すごい楽だね、これ。最初から設定しておけばよかった・・・。その後、2.8.3が出てたので、それも『自動アップグレードを実行』で一発完了。期待通りの結果。このバージョンから、編集画面のカスタマイズが強化されている。早速、編集リスト画面の表示件数を15→20件に変更(編集画面の右上にある表示オプション)。それから、編集画面の列数を2→1に変更(投稿記事編集画面の右上にある表示オプション)。これで、大分好みの画面に変わった。

次にスパム対策。大してPVも増えていないにもかかわらず、コメントスパムはやたら増えている。akismetというプラグインで対応できるようなので、管理画面→プラグインにてakismetの『使用する』をクリック。API KEYというものが必要らしく、公式サイトでユーザー登録をして入手する模様。サインアップの画面に行き、フォームを埋めてユーザーを作成する。『ブログを作る』という選択肢もあったが、今回は『ユーザー名のみ』という選択肢にした。すると、登録したメアドにメールが届いているので、そのメール内のリンクをクリックしてユーザーを有効化する。あとは、この辺のページで『Your API Key:』と書かれた箇所でキーを確認。かそのキーを管理画面にて入力すれば完了。あとはダッシュボードのakismet統計などで状況を見るだけ。スパムはすっかり消滅するようになった。

もう幾つか修正を行っている。記事ごとのadsense広告をテンプレート内に設定。管理画面→外観→編集で『main index template(index.php)』を選択。『<?php adsense_deluxe_ads(ad); ?>』というタグを該当箇所へ挿入。見づらかったstat traqのバージョンアップはプラグインの一覧画面からクリック一発で完了。ついで(?)にwp-slimstat-exというプラグインも入れてみたが、まだ見方がよくわからない。とりあえず日本語パッチはエラーになるので当てない事。最後にログイン期間のカスタマイズ。デフォルトで14日になっているが、これを好みの期間に変更する。設定値がハードコーディングされているので、ソースをいじる必要がある。例えば100日にする場合は、${WORDPRESS}/wp-includes/pluggable.phpの637行目にある数値を以下のように編集。

$expiration = $expire = time() + apply_filters('auth_cookie_expiration', 1209600, $user_id, $remember);

$expiration = $expire = time() + apply_filters('auth_cookie_expiration', 8640000, $user_id, $remember);

カテゴリ: 技術系  | タグ: , ,  | コメント
2008/12/26 金曜日 | 投稿者: aqua

こんばんは、aquaです。

今日はwordpressについて変更したポイントのまとめをしておこう。まず、テーマの変更だが、テーマそのものは公式などで入手できる。入手したテーマファイルを解凍して <<${WORDPRESS}/wp-content/theme>> に配置する。ブラウザ上からテンプレートの変更を行う場合はパーミッションを適切なものに変更しておく。あとは管理画面の外観→テーマで変更可能。

次に広告用プラグイン。今回はadsense-deluxeというものを使ってみた。ファイルはこちらのサイトからダウンロードできる。ダウンロードしたファイルを解凍して <<${WORDPRESS}/wp-content/plugins>> に配置する。管理画面のプラグインで機能を有効化する。設定のAdsenseDeluxeで広告の名前やコードを設定する。

もう1つアクセス解析用のプラグインを追加した。wp-stattraqというもので、これはこちらから入手可能だ。上記と同じディレクトリに配置し、必要に応じてwp-stattraq-install.phpを修正。例の如くプラグインを有効化して、以下のようなURIを表示し、該当する項目をクリックすれば完了。

http://domain.com/wordpress/wp-content/plugins/wp-stattraq/stattraq-install.php

最後にwordpressそのもののバージョンアップ。公式から最新バージョンを入手する。既存のwordpressをバックアップコピーし、入手した最新版で上書きする。wordpressの管理画面へアクセスすると、アップグレードボタンがあるのでクリックすると完了。特に問題なく2.6.1 → 2.7.0のマイグレーションに成功したが、stattraqの画面が妙に見づらい状態になっている。これ直す方法ないのかなあ・・・。

カテゴリ: 技術系  | タグ: , ,  | コメント
2008/08/22 金曜日 | 投稿者: aqua

こんばんは、aquaです。

慣れるためにも、wordpressの機能をいろいろいじってみる。

まず、アカウント管理。管理者権限のユーザーで投稿するのは何となく気持ち悪い。投稿者がadminとかになるのが個人的にはいただけない。ユーザーには5つのレベルがある模様。今回は、管理者の次に強い権限を持つ編集者ユーザーを作成。作成したユーザーで昨日の投稿を再編集し、投稿作成者を変更。オーナーが編集ユーザーに変わった。この辺は直感的。

これで投稿者もadminとかじゃなくなるかな、と改めてトップを見ると・・・投稿者名が表示されていないねw

おそらくテンプレートの編集で変更できるはず。テーマで一気に切り替えられそうでもあるが、今回は個別に直してみる。が、テンプレートをいじるメニューが見つからない。どうやら編集者ではテンプレートをいじる権限はないようだ。管理者ユーザーに切り替えてみると、該当のテンプレートが見つかった。ググった結果、追加したいテンプレートタグは以下。

<?php the_author();??>

実は該当テンプレート内にこのタグがコメントされた形で記述されていた。そちらをそのまま使う形で編集。保存・・・ってまたボタンがない。よく見るとページの下部にパーミッションを警告するメッセージが。サーバ側で以下のディレクトリのパーミッションをhttpユーザーに開放する。

${WORDPRESS}/wp-content/themes

無事、保存できた。トップページを見ると投稿者名が表示されている。よしよし、こんな感じか。他のグルーピングで投稿を参照すると投稿者の記述は見当たらない。共通パーツにはなっていないんだね。次回は好みのテーマを探してみよう。

カテゴリ: 技術系  | タグ: , ,  | コメント
2008/08/21 木曜日 | 投稿者: aqua

こんばんは、aquaです。

今更ながらblogの運用にトライしてみる。

まずはツールの選定から。環境的には慣れているLAMPを希望。xoops等のCMSによる運用も試してみたが、統合的な管理(特に認証系)は好みだったものの、各機能がもう一歩な印象が強かった。今回もCMSは検討に含めてはいるものの、しばらくは専用ツールを試してみるつもり。代表的なのは以前に調べたときとそれほど変わっておらず、やはり以下が候補か。

movable typeは静的生成が特徴?この特徴に魅力を感じればよいのかもしれないが、各サイトの意見を見る限り、取り回しの面倒さの方が目立つ感じ。blogツールの本格的な運用はほぼビギナーな自分としては、敷居の低いものを選びたく、とりあえず選択肢から外す。

あとはnucleusとwordpress。前者はしっかりカスタマイズして育てていく印象。後者は最初からある程度使いやすい模様。何となく好みとしてはnucleusぽいが、まだまだ素人なのでwordpressの方がとっつきやすそう。何はともあれ、両方インストールしてみた。

インストール自身は最近のLAMPツールな感じで非常に簡単。どちらもアカウント管理をどうすればよいのやら?とりあえず管理者で運用していけばいいのかな。当初の予想通り、nucleusは何すればよいのかわからない。一方、wordpressはウィジェットの追加やヘッダの変更など、いじってみたくなる要素が目についた。タグ管理も好み。

というわけで、慣れるまではしばらくwordpressで運用開始。機能面に慣れてきたら、nucleusをカスタマイズして再度比較評価する予定。それまで体力あればだけど。

さ、文章も出来たし、初投稿してみよう・・・って、投稿のボタンどこ?w

カテゴリ: 技術系  | タグ: , ,  | コメント