Search Regexのエラーとログインエラー

投稿日: カテゴリー: WordPress

WordPressのルートディレクトリ直下への変更は順調に終わったと思ったが、その後しばらくしてWordpressより「WordPress がプラグイン Search Regex でエラーを捉えました。」とメールが届く。取り敢えずWordpressにログインしようとすると、今度は「Cookiesがブロックされているか、…Cookieを有効化する必要があります」というエラーが出た。

変更直後まではログインもできていたし、怪しい挙動もなかったので焦ったが、結論から言うと、Search Regexでエラーとログインエラーは別々の問題だった。

まずはプラグインのSearch Regexから対応。少し調べてみると、Search Regexは3年くらいアップデートもないプラグインで、今回のような「エラータイプ E_ERROR が…/wp-content/plugins/search-regex/view/results.php ファイルの 26 行目で発生しました。」というエラーが発生することがあるらしい。対応としてはSearch Regexのviewフォルダ下のresult.phpの26行目を<?php /*?>と<?php */?>で挟んでコメントアウトすること。念のため、このプラグインは今後使う予定もないので停止した。

次にログインエラーについて。正しく解釈出来ているか怪しいが、SSL化した後など、サイトのURLが変更になった場合などに、このようなエラーが発生することがあるらしい。まずは指示通りCookieを有効化?することだが、結局何が必要だったか分からないのでやったことを列挙する

  • 閲覧履歴、Cookie、キャッシュの全削除
  • ログイン情報とパスワードが保存されていたので削除
  • Cookieデータの保存と読み取りを許可するを一旦「ブロック」して再度「許可」する

以上を何回か繰り返し試したが、効果なし。大分悩んだが、ログイン画面のURLがhttps://aaa.bbb.com/wp-login.phpになっていたので、今回変更したサイトアドレスに合わせてURLをhttps://www.aaa.bbb.com/wp-longin.phpにしたらログイン出来た。

当たり前なのかもしれないが、WordPressで設定したURLを、httpかhttpsか、wwwの有無など、ログイン画面のURLにも忠実に反映させることが肝要だったようだ。結局Cookieの削除等の作業が必要だったか分からなかったが、エラー出た場合の対処としては、まずログイン画面URLの確認して、問題無いようならCookieの削除(有効化?)してみるのが良さそう。

WordPressインストールの場所をルートディレクトリ直下に変更

投稿日: カテゴリー: WordPress

久しぶりにブログを更新するにあたり、古くなったテーマの変更やSSL対応をしようとして、変更作業中に色々と躓くことが多かった。その中でも、「Wordpressアドレス」と「サイトアドレス」が異なることで生じる不具合で色々面倒くさいことになっていた。

気が付かないだけで他にもあるかもしれないが、悩んでる問題は、

  • テーマのカスタマイズで「Non-existent changeset UUID」とエラーが出てプレビューが表示されない
  • 特定のプラグインで「.htaccessの書き込み権限がありません」と表示され実行できない
  • ページの公開状態を「パスワード保護」にしたとき、パスワードを入力してもページ閲覧出来ない場合がある

上2つは不便だけど一時的にサイトアドレスを同じに変更して対応できるが、3つ目は特定の第三者に閲覧してもらうためのページで、その場しのぎもできない。それほど事例が多いわけでもなかったので個別対応していた。

丁度いい機会だったのにWordpressをルートディレクトリ直下にインストールし、Wordpressとサイトアドレスを同じにして、問題解決することにした。

WordPressアドレス http://aaa.bbb.com/wp1

サイトアドレス http://www.aaa.bbb.com

これ↑ を ↓となるようにする

WordPressアドレス、サイトアドレス https://www.aaa.bbb.com

ついでにssl対応したのでhttpsになっている。ちなみに、wwwの有り無しの違いだけでも不具合出るので、Wordpressアドレスとサイトアドレスのurlは完全に一致させる必要がある。

以下手順。詳細は詳しいサイトが多くあるので、ここでは今回行った作業を列挙する。

  1. ftpにてサブディレクトリにインストールされたWordpressのファイルをすべてバックアップする。ついでにルートディレクトリ直下にある.htaccessとindex.phpもバックアップ。
  2. .htaccessとindex.phpはルートディレクトリ直下とサブディレクトリのどちらを使うかは、それまでの個々のカスタマイズで変わってくると思うが、サブディレクトリの記述がある方のファイルを使う時は修正が必要。.htaccessなら「RewriteRule . /wp1/index.php [L]」の「/wp1」削除して「RewriteRule . /index.php [L]」と修正。index.phpは「require(‘./wp1/wp-blog-header.php’);」の「/wp1」を削除して「require(‘./wp-blog-header.php’);」と修正する必要がある。
  3. ftpにてサブディレクトリをまるごと削除、バックアップしたWordpressのファイルと修正済み.htaccessとindex.phpをルートディレクトリ直下にコピー。
  4. WordPressにログイン出来なくなったので、データベースMySQLにログインして、wp_options内のoption_name:siteurlがoption_value:http://aaa.bbb.com/wp1となっているので、「https://www.aaa.bbb.com」に編集修正。
  5. ログイン出来るようになったので、Wordpressにログインする。ログイン画面urlが「http://aaa.bbb.com/wp1/wp-login.php」から「https://www.aaa.bbb.com/wp-login.php」とサブディレクトリの/wp1がなくなるので注意。
  6. 念のため、「設定」-「パーマリンク設定」で特に変更しなくても「変更を保存」する。
  7. WordPressアドレスが変更されたことにより、サイト内のアップロード画像等が表示されなくなってたりするため、サイト内urlを一括変更する。使用したプラグインは「Search Regex」。変更は固定ページと投稿ページだけで充分なので、置換範囲は「Post content」。置換内容は短すぎると余計なものまで変更されてしまうかもしれないので、「http://aaa.bbb.com/wp1」から「https://www.aaa.bbb.com」とした。一括置換はやはり怖いので、「Replace」で置換結果を確認してから「Replace&Save」で一括置換して保存。

以上で作業完了だが、4はファイル削除前にWordpressの設定からWordpressアドレスを修正後のurlに変更しておけば必要なかったかも。

ドメイン直下にWordpressをインストールすることは、デメリットもあるようなのだが、自分の利用スタイルでは特に問題ないと判断した。まあ、自力で解決できる熟練者だったらディレクトリ変更以外のやり方もあったかもしれないが、Wordpress初級者の自分には今回の変更で十分すっきりした。

WordPress TwentyThirteenその6 My-CalendarとCounterizeII

投稿日: カテゴリー: WordPress

プラグインのMyCalendarは設定でJumpではなくNavを使えば、カレンダーの月移動でページ全体更新しなかった。曜日ごとにClass分けされているので、cssで土日の色分けもできた。

ただ、カテゴリー名を日本語表記にすると、なぜかMINIカレンダーのソースでカテゴリ名が文字化けして、Class指定が出来ずに色分けできなかった。なので、とりあえずカテゴリー名は英語にした。

また、なぜか今日表示(Current-day)が9時間進んでいて、午後3時になると、カレンダーが次の日になってしまう。思い当たるのは、Counterizeiiでwp-setting.phpのUTCに+9した事くらいなので、UTCに戻したが、修正されなかった。そもそもwp-setting.phpを変更して対応する事は正しいのかどうか分からないし、WPアップデート毎に変更も必要ということで、counterize.phpに以下の一文を追加してみた。

date_default_timezone_set( ‘Asia/Tokyo’ );

とりあえずCounterizeは期待通りの動作しているように見える。MyCalendarのほうは何が問題かわからず、文字化けと共に保留中。

WordPress TwentyThirteenその5 table作成とカレンダーのプラグイン

投稿日: コメントするカテゴリー: WordPress

表作成補助のプラグインTinyMCE Advancedをいれてみた。Excelと比べると、全く使い勝手はいいとはいえないが、簡単な表なら作れる。プロパティの設定アイコンはあるが、一々全ての設定を入力しなければならないようなので、セル毎の設定は手動で行ったほうがよさそうだ。まあ、枠組みだけでも容易に作れるので、無いよりマシ。投稿編集画面と投稿ページのスタイルシートが異なるため、style.cssを変更するときはeditor-style.cssも併せて変更したほうがよさそう。

カレンダーは、サイドバーに配置できて、日付からイベントをPopup表示して、前月/来月の移動で全体のページ毎更新されないことを条件に探してみた。

FT Calendarはタイトルだけでなく記事内容も一緒にポップアップ表示させるやり方がわからなかったのと、カレンダー表示の年月表示が月年になっていて、それの修正方法がわからなかったので、やめた。

Event Calendar 3(V3.1.4, WP3.6)は、まず、導入すると投稿が表示されなくなる。eventcalendar3.phpの

function xx(&$xx)

という記述の&を削除(数箇所ある)することで、投稿が表示されるようになった。月年表示はphpやjsを修正で年月表示に出来た。ただ、日付にカーソル移動させると、Hoverした日付の周囲の日付表示が1pxくらいずれる。土日の色分け方法も分からない。ソースが煩雑で初心者には厳しいつくりになっていたので断念。

Biz CalendarはEventが1つしか登録できなく、ポップアップもないので、断念。それ以外はシンプルでいいカレンダーだと思う。

結局、my calendarにしてみた。カレンダー表示移動で全体ページ更新される以外は、設定も容易だし、Event登録も簡単。ページ更新されないカレンダーが見つかるまでこれを使う事にした。

WordPress TwentyThirteenその4 単一記事について

投稿日: コメントするカテゴリー: WordPress

単一記事(single.php)について。 単一記事へのリンク元はフロントページ、カテゴリーページ、アーカイブページ等数多くあるが、同一記事で、フロントページやアーカイブページから単一ページと、カテゴリーページから単一ページの表示を変えようと思って色々調べたが、難しそうなので断念した。カテゴリー別なら差別化ができるようだ。 まずsingle.phpをコピペでsingle-xx.phpを作成。single.phpは以下のような感じで、作成したテンプレートにリンクさせる。以下以外は削除。

<?php  if (in_category(‘cat-srug’)):   get_template_part(‘single’,’xx’); endif;  ?>

次にsingle-xx.phpの編集。カテゴリーページにあったヘッダー(どのカテゴリーの記事か分かりやすくするため)を流用するため、category.phpから該当部分をコピペして、太字部分を変更。

<h1><?php $cat=get_the_category(); $cat=$cat[0];  printf( __( ‘Category Archives: %s’, ‘twentythirteen’ ) , $cat->cat_name); ?></h1>

次に、next/previousリンクを同一カテゴリ内のみでリンクするようにする。functionのtwentythirteen_post_nav()を流用して、functions.phpのtwentythirteen_post_nav()をコピペして別関数を作成。以下のように太字を追加すると、同一カテゴリーだけの表示になる。

<?php previous_post_link( ‘%link’, _x( ‘<img src=”url” /img> ‘, ‘Previous in category’, ‘twentythirteen’ ) ,true ); ?> <?php next_post_link( ‘%link’, _x( ‘<img src=”url” /img>’, ‘Next in category’, ‘twentythirteen’ ) ,true ); ?>

本当は、next/previousリンクは、月別アーカイブから単一記事を表示した場合は、月別アーカイブ内で、カテゴリーページから単一記事表示した場合はカテゴリー内でリンクが変わる、みたいなことをしたかったのだが、まあ、目的の半分は達成したかな。今回、カテゴリ別で表示を変えることはしなかったので、結局single.phpは1つしか必要なかった。 ついでに単一ページにコメント欄追加。

プラグインのjetpackを使ってみた。コメント欄以外にも色々機能があるようなので、便利かも。