美川の山里暮らし

還暦を過ぎ、岡山県南西部の山間地で文明の利器を活用しながら田舎生活を満喫したいと思っています ゲンノショウコの写真

WordPressのデーターベースが不具合です

Filed under: WordPress — タグ: , , — daii @ 8:24 AM
2010年11月15日

私が使っているcoreserver.jpが突然不具合になり、2日程前からワードプレスのブログが真っ白に表示されるようになりました。ワードプレスを daii.jp から daii.jp/wp/ に変更したばかりだったので、それが原因かと思いましたが違うようです。

コアサーバーの PhpMyAdmin にログインしてデーターベースの状態を見ると、「INDEX というキーがカラム`comment_approved` に複数作成されました。」というエラーが表示されています。これを削除してやるとエラーは消えましたが、ブログは表示されません。

ワードプレスのルートのhtaccessファイルに

AddHandler application/x-httpd-phpcgi .php

と記述してセーフモードのPHPをCGIで動かすと、次のようにheader.php のXML宣言がエラーになっていると表示されました。

<?xml version="1.0" encoding="utf-8"?>
php_flag short_open_tag Off

が無効になっているようです。仕方がないので、XML宣言を次のように書き換えると、ブログがやっと表示されました。

<?php echo '<?xml version="1.0" encoding="utf-8"?>'."\n"; ?>

スタイルシートが効かないのと、画像が表示されないのを除くと、一応使えるようです。コアサーバーの復帰を待つしかありません。エクスレア、コアサーバーのサポートボードはメンテナンス中となっていて表示されません。困ったものです。

スポンサーリンク

WordPressで個別記事ページのh1タグを条件分岐変更する

Filed under: WordPress — タグ: , — daii @ 8:14 PM
2010年6月19日

WordPress初期設定でのh1,h2タグ

WordPressの初期設定では「ブログの名前」がh1タグに指定されており、「ブログの説明文」は見出しには指定されていません。そして、「個別記事のタイトル」がh2タグになっているのが普通です。これではSEOに有効とは言えません。

個別記事のh1タグに「個別記事のタイトル」を指定してみました

私はこれを個別記事以外はindex.phpを使って、h1タグに「ブログの説明文」を、h2タグに「個別記事のタイトル」を指定して、記事内部にh3タグ以下を指定していました。

個別記事では、h1タグに「個別記事のタイトル」を、h2タグには何も指定せず、記事内部にh3タグ以下を指定していました。これは個別記事にsingle.phpを使って実現していました。個別記事でh2タグを使わず飛ばしてh3タグになっていたのが気になっていました。

個別記事だけを指定するis_single()を使って条件分岐させました

今回これを、single.phpを使わず、header.phpだけを変更して、h1タグを条件分岐して変更する方法にしました。

最終的に、個別記事以外は、h1タグに「ブログの名前」+「ブログの説明文」を指定して、個別記事では、h1 タグに「個別記事のタイトル」+「ブログの名前」を指定しました。h2タグに「個別記事のタイトル」を指定して、記事内部にh3タグ以下を指定するのは従来通りです。これならSEOにはかなり有利なはずです。

条件分岐には

<?php if(is_single()): ?>

という個別記事だけを指定するis_single()というものを使いました。実際のスクリプトは次の通りです。

<h1>
<?php if(is_single()): ?>
<span class="storytitle_s"><?php the_title(); ?></span>
<span id="header_s"><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></span>
<?php else: ?>
<span id="header"><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></span>
<span class="description"><?php bloginfo('description') ?></span>
<?php endif; ?>
</h1>

ここで、h1タグの中にはブロック要素のdivタグを使うことができないので、インライン要素のspanタグを使ってブロック表示をさせています。single.phpは必要なく、とてもスマートにできました。表示がかなり乱れますのでスタイルシートで調整します。

classの表示が一部抜けている場合があります。上記のスクリプトは参考程度にしてください。ご了承ください。

WordPressでメール投稿を設定する方法(Ktai Entryを使用)

Filed under: WordPress — タグ: , , , , — daii @ 6:11 PM
2010年6月18日

Ktai Entry とは

携帯電話のメールで簡単、高機能にWordPressブログに投稿できるようにしたプラグインです。画像を添付したメールや、絵文字にも対応しています。秘密の投稿専用メールボックスに定期的にアクセスして新着メールがあれば取り込みます。投稿処理は各種の方法に対応しています。PHP5以上が必要です。

Ktai Entry の使い方(インストールと設定)

あらかじめ誰にも知られていない投稿専用のメールアドレスを準備します。できれば、独自のドメインで作った方が良いでしょう。宣伝やプロバイダの案内のようなメールが来ないアドレスにします。

Ktai Entry の配布元より、Ktai Entry をダウンロードします。(ktai_entry0811.tar.bz2)
解凍すると「ktai_entry」というフォルダに展開されるので、フォルダごとwp-content/plugins フォルダにアップロードします。(必要ないファイルもあります)

次に自分の WordPress にログインして、管理画面から新規にユーザーを作り、メールアドレスの箇所に携帯電話のメールアドレスを入力します。また、メール送信後すぐ公開したい場合は、権限を「作成者」以上にします。

「プラグイン」の画面で、「Ktai Entry」を有効化します。

「設定」→「投稿設定」→「メールでの投稿」で、メールサーバー、ポート、ログイン名、パスワードを入力します。

「設定」→「Ktai Entry オプション」で、各種設定をします。「POP3 読み込み間隔」は、サーバーに負荷がかかるので、15分以上にします。

「投稿受付メールアドレス」は設定しなくても使えますが、宛先 (To フィールド) がこのアドレスでないメールは拒否してくれるので設定した方が良いでしょう。

「投稿に挿入する画像サイズ」は、私は「中サイズ」を選びました。「投稿テンプレート」は添付画像がある時に使用されるので、使っているテーマのスタイルシートに指定されている画像の左寄せを style=”alignleft” と設定しました。こうすればスタイルシートは変更しないで済みます。

これらの設定が終わったら、携帯電話から秘密のメールアドレスにメールを送ってみましょう。15分程度待ってから、パソコンでブログにアクセスすると投稿が確認できるはずです。携帯電話でアクセスすると投稿されていないこともあります。これはパソコンでないとスタイルシートが読み込まれないから投稿されないようになっています。でも、他の誰かが先にパソコンでアクセスすると投稿が確認できます。

セキュリティの観点からルートの wp-mail.php は別の名前にリネームしておきましょう。

Xrea やCoreserver の場合のPHP動作の注意事項

Xrea やCoreserver のサーバーの場合は画像を投稿するとエラーになって画像が投稿できないと思います。その場合は、wp-content/plugins/ktai_entry のフォルダーに

AddHandler application/x-httpd-phpcgi .php

と書いた.htaccess ファイルを置いてください。

Xrea やCoreserver のサーバーの場合はPHPはセーフモードが有効となっていて、ユーザー名が自分ではないなどの制限があります。PHPをCGIとして動作させるとその制限がなくなるようです。

スポンサーリンク

WordPress設定の覚え書き(xrea,coreserverに設置する)

Filed under: WordPress — タグ: , , , — daii @ 1:56 PM
2010年6月3日

ブログの画像2010年6月3日できるだけシンプルでXHTML文法に忠実なWordPress のテーマ(テンプレートのようなもの)を探していたら、私に誂え向きのテーマ(classic)を見つけました。

Pタグ(段落)の字下げをスタイルシートで設定しました

このWordPressでは投稿時のPタグ(段落)の字下げは無視されるようなので、スタイルシートで字下げを設定しました。これはなかなか良いので、ホームページにも採用しました。つぎのようにPタグにテキストインデント1文字分を追加するだけです。

p	{text-indent: 1em}

サイドバーを右から左に変更しました

この画像ではサイドバーが右にありますが、この方法だと画面の幅を縮めた時、左のメイン部分の一部(画像や広告)がサイドバーの下に隠れてしまいます。そこでサイドバーを左に持ってきました。これなら何の問題も無いでしょう。

ついでにMax Width の設定もやりました。IEやFirefoxやOperaでもうまく表示されているはずですが、どうでしょうか。画面の横幅約910ピクセル以上ではそれ以上に横幅が広がらないはずです。画面の横幅500ピクセル以下でも文章は完全に読めるでしょう。

グーグルアドセンスの広告を付ける

グーグルアドセンスをWordPressに付けるのはなかなか難しいものです。サイドバーにはウィジェットを使えば比較的簡単に広告を付けられますが、メ イン部分には簡単にはいきません。私はヘッダーとフッターに直接コードを貼付けました。アドセンス用のプラグインもあるようですが、貼付け箇所の変更はどうしても必要です。

グーグルアドセンスを付けてもAnother HTML-lint gatewayで文法チェックをしたら99点になりました。普通のブログはマイナス点になるものが多いようです。50点以上ならまず合格でしょう。

Feedburnerとマイブランドとワードプレスの設定方法

Feedburner を使って、マイブランドでのRSS配信をしました。Feedburner のプラグインのFeedSmith も適用してみましたが、WordPressが発行するフィード(http://hogehoge.jp/feed)を使わない設定にすればFeedSmithは必要ありません。

WordPressが発行するフィード(http://hogehoge.jp/feed)を使わない設定にするには、テーマの中のfunctions.php内の

automatic_feed_links();

をコメントアウトします。また、ウィジェットのメタ情報を表示しないようにします。その代わりにリンクの中に「管理者ログイン」というリンクを作って(http://hogehoge.jp/wp-admin/)にリンクさせます。

FeedburnerがWordPressが発行するフィード(http://hogehoge.jp/feed)を(http://feeds.feedburner.com/****)に変換します。このフィードをマイブランドで更に(http://feeds.hogehoge.jp/****)に変換してくれます。これを次のようにヘッドタグ内に記入します。

<link rel="alternate" href="http://feeds.hogehoge.jp/****" type="application/rss+xml" title="RSS" />

サイドバーのアルファベットの表示が小文字になっているのを直しました

サイドバーのアルファベットが大文字になっていても何故か小文字で表示されていました。これは原因がなかなかわかりませんでした。ブラウザで表示させてソースを見ると確かに大文字になっています。 style.css の内容を調べてやっと原因がわかりました。次のようにサイドバー(menu)の文字を小文字に変換するようになっていました。

#menu ul {text-transform: lowercase;}

これを次のように書き換えるか、この項目を削除します。英語圏では小文字で表示させるのが一般的なのでしょうか。

#menu ul {text-transform: none;}

個別記事ページのデザインを変更しました

single.php という名前のファイルを作成すれば個別記事ページを表示するファイルとなるようです。 「index.php」ファイルをコピーしてファイル名を「single.php」にして保存します。内容を次の通り変更します。もちろん、「header.php 」の中に該当の記述がある場合は、 「index.php」内に持ってきます。

個別記事のページではh1タグを個別記事のタイトルにしました。他のページではh1タグはブログの要約を記述していました。後、適当にスタイルシートも変更します。

画像がアップロードできなくなったのを直しました

私はワードプレスをcoreserver.jp で作っています。設定で「アップロードしたファイルを年月ベースのフォルダに整理」にチェックすると、画像がアップロードできなくなりました。

coreserver やxrea はPHPをセーフモードで動かしているらしく、PHPをCGIで動かすように変えてやらないと駄目なようです。「 .htaccess 」 中に

AddHandler application/x-httpd-phpcgi .php

と記入して、 wp-admin の中に入れました。そうしたらアップロードできるようになりました。アップロードファイルだけに適用した方が良いらしいのですが、それだとうまくいきませんでした。

WordPressで管理画面のレイアウトが崩れるときの解決方法(Ver.2.9)

ブログを書いていると突然管理画面のレイアウトがぐちゃぐちゃになってしまいました。どうもスタイルシートがうまく働いていないようです。

この現象はFirefox3で発生して、IE8では問題なく表示されることがわかりました。私はIEの使いにくさにうんざりしていて、すっかり Firefox派になってしまっていたので、できればIEは使いたくないのです。この解決方法は次のようにwp-config.php の上の方に次の行を追加するだけです。

define('CONCATENATE_SCRIPTS',false);

それ以来Firefoxで管理画面を開いても正常に表示されるようになりました。どうもWordPress は不具合が多いようです。

Wp Security Scan を使ってデータベースにアクセス不能になった時の対処

Wp Security Scan のプラグインはとても便利です。セキュリティに無頓着でも一応のセキュリティは確保してくれるみたいです。Wp Security Scan を使うと

Your table prefix should not be wp_. Click here to change it.

と警告してくれます。つまり、データーベースのプリフィックスをデフォルトの wp_ から変更しなさいと言ってきます。セキュリティ上やった方が良さそうなのでやってみました。

wp_のところに新たなprefixを指定して[Start Renaming]をクリックしました。

ブログの閲覧は正常ですが、ログインすると「このページにアクセスするための十分なアクセス権がありません」となってログインできません。原因は変更前のプレフィクス wp_ を使用したデータが、データベース内に存在してしまっているかららしい。

コアサーバーの管理画面から色々やってみましたがどうにもなりません。結局データーベースを全部削除して、新たに同じデータベースを作り直しました。その後バックアップしてあったデーターを戻して終了です。一時はとてもあせりました。疲れました。

WordPressでXML宣言をするとエラーとなります

XHTML1.0では次のようにXML宣言をしますが、WordPress はPHPで記述しています。

<?xml version="1.0" encoding="utf-8"?>

< ? で始まるXML宣言が、PHPを省略して書く際の冒頭部分と同じなのでエラーとなる為です。WordPress のPHPではこの省略を使えないように、WordPress ルートの.htaccessファイルに次の行を書き加えれば問題はありません。

php_flag short_open_tag Off

自動投稿機能、トラックバック送信の不具合を解決する方法

自動投稿機能とトラックバック送信が初期設定だと不具合が生じるのでwp-includesの中のcron.phpの 229行目(Wordpress 2.9の場合)の記述を変更します。

wp_remote_post( $cron_url, array('timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters('https_local_ssl_verify', true)) );

この0.01秒を次のように3秒に変更します。

wp_remote_post( $cron_url, array('timeout' => 3, 'blocking' => false, 'sslverify' => apply_filters('https_local_ssl_verify', true)) );
« Newer Posts

Powered by WordPress