WordPressとPHP関係の仕事上の覚え書き

アウトブレイク![outbreak]

wordpress MUの諦めとリダイレクトプラグイン

さんざん格闘をしてきたwordpress MUですが、今のままでは使えないと判断しあきらめました。
今後wordpressとMUが統合されると言われていますので、複数wordpressをインストールするくらいならと検討していましたが、さまざまな部分で融通が利かないためあきらめるに至りました。

で、wordpressを複数インストールする方向で検討していますが、これが1つでなんとかなるならそれでもいいかな~ということで。再度検証開始。

まず、ページの構成から。
ページは例えばnewsという階層を作ってexeample.com/news/index.htmlなどとしたい場合、パーマリンクの変更はページには及ばないので、ページの機構だけを使って実現します。
とりあえず、newsというタイトルのページを空で作成し、過去に紹介したプラグインを利用してページにhtmlを付加します。これでexeample.com/news.htmlというページができました。

次に、indexというページを作成し、親にnewsページを指定します。これだけでexeample.com/news/index.htmlができちゃいます。
ただし、このままでは空のnews.htmlにもアクセスができてしまいます。そこで新たなプラグイン。WordPress & Business メモさんのリダイレクト設定ができるプラグインを参考にRedirectionをインストール。news.htmlにアクセスがあった場合はnews/index.htmlにリダイレクトしてしまいます。

同じ方法でexeample.com/news/old/index.htmlなど深い階層も実現できます。

今回、TOPページはhome.phpを利用して固定ページを作成していますが、ブログの一覧ページも表示したいなということで、アクセスアドレスはexeample.com/blog/でブログページを表示させます。
通常であれば[設定]の[表示設定]で固定ページを選択してあげればよいのですが、今回パーマリンクの設定は[/blog/%category%_%post_id%.html]になっていることが原因なのか、ページでblogを作成し投稿ページでblogを指定しても上記アドレスでアクセスができませんでした。
投稿の単発表示ではexeample.com/blog/category_1.htmlでのアクセスが可能なので、パーマリンクは問題ないといえます。
そこで、indexページを新規作成し、親にblogを指定することにしました。あとは上記方法でリダイレクトを指定して/blog/にアクセスがあった場合は/blog/index.htmlにリダイレクトしてしまいます。/blog/のままではアクセスできませんがリダイレクトされて一覧が表示されるので(404にはならない)問題なしとします。

この件を調査中にis_homeとis_front_pageでの動作に違いがあることがswhrykの日記ではじめて知りました。勉強になりますねぇ~

カテゴリー: wordpress, ファーストサーバー | 1件のコメント

ようやくテスト稼動にこぎつけた

wordpressMUと格闘すること1週間。ようやくテスト稼動させることまで成功した。

まず、既存のhtmlを置き換えることを念頭においてパーマリンクを作成しなくてはならない。パーマリンクは「/%category%/%postname%.html」にした。これなら現在フォルダで構成している(hoge/index.html)ファイルもフォルダ名と同じカテゴリー名を作成すれば実現できる。

しかし、TOPページはそうはいかない。ファイル名の指定なし(http://exeample.com/)でアクセスした場合は問題ないが、index.htmlを指定して(http://exeample.com/index.html)アクセスした場合ページが存在しない。

そこでまず、ページのパーマリンクにhtmlを付与してくれるプラグイン(.html on PAGES)を導入。次にindexというページ名のページを作成。しかし、ここでページを固定表示してはいけない。固定ページにしてしまうとindex.htmlでアクセスした場合にリダイレクトされスラッシュ付のアドレス(http://exeample.com/index.html/)に変換されてしまう。

そこで、home.phpを作成した。wordpressのテンプレート階層によりhome.phpが存在すればindex.phpよりも先に使用される。このhome.phpに今までhtmlで作成されていたページをループを使わずにそのまま作成した。TOPページはほとんど修正がないので固定作成でも問題はないのだ。(一応NEWSの一覧などはtxtから自動取得して表示するように作りこんである)
コツはここからで、このhome.phpにページテンプレート用の記述を組み込み、ページ編集画面からテンプレートとして読み込めるようにした。これであらかじめ作成しておいたindexというタイトルのページにhome.phpをデザインとして読み込める。indexページには何も記述していないが、そもそもhome.phpにループを作成していないため、ルートでアクセスした場合もindex.htmlでアクセスした場合も同じページが表示できるようになった。

そして実際にルートでアクセスできるようにWordPress MU ブログディレクトリの変更を参考にファイルの修正とコピーを行った。
ここではまったのがオリジナルで作成していたphpファイルをincludeする場合のテンプレートディレクトリの指定方法だ。最初はinclude(‘hoge.php’)としていたが、ルートにアクセス先を変更するとincludeもルートから行ってしまう。気づくまで時間がかかった・・・。これをbloginfo(‘template_directory’)とすることでテンプレートディレクトリを取得し、動的に変更するようにした。(これはこれで後ではまることになる)

ようやくテスト稼動の確認までできるようになった。実際に動作には問題なさそうだ。次はいよいよ複数のwordpressブログをMUひとつで動かすテストです。

カテゴリー: wordpress, ファーストサーバー | 1件のコメント

WordPress MU と格闘中・・・

相変わらずWordpress MUと格闘中です。URLに関しては「wwwって何?意味あんの?」ってことで、つけていることに意味を見出せないものの、なければURLが簡素化されるなどの利点があり、また、なくてもあってもリライトで飛ばされるのでページが見れなくなるわけではない、という結論に達しました。別に推進派になったわけではありませんが。

WordPress MUのシステムにはいろいろと通常版とは違うところがあるようで。

  1. テーマの編集がサイト上からできない(その機能がない)
  2. 表示設定にフロントページの表示項目がない(つまりページをトップ表示ができない?)

など。他にもあるかも。これって最初にインストールしたときに自動的に生成される管理者ブログ(?)のみに起こることなのか、サブブログにも起こるのか、まだ試してないのでわからない。2は不便だろ?

とりあえず、ヘッダ、フッタ、サイドバーはなんとかテスト段階までいけた。メインindexをページで作ってhome.phpで表示させようと思ったらトップ表示できないので困った・・・

[追記]2については作ったつもりのページが下書きのままになっていた(汗)公開して表示できた。ただ、検索中に気になる記事を見つけた。TOP固定表示にする場合home.phpはだめだという。状況は不明なので試してみるかな。

[さらに追記]home.phpは存在するとindex.phpの代わりにトップページとして自動的に使用されてしまうためにページテンプレートとしてはだめだよという意味らしい。私の構築サイトの場合はそもそもトップページとして使用したかったので問題なかった。ちょっとややこしいことをして構築しているが、詳細はのちほど。

カテゴリー: wordpress, ファーストサーバー | コメントをどうぞ

ファーストサーバーでwordpress MU

ファーストサーバーにwordpress MUをインストールする必要性が出てきた。

出たばかりのwordpress MU 2.8.1 をダウンロードしてきて、日本語ファイルは2.7.1のものを使用。

文字化け対策は通常のwordpressと同じ方法が適用できる。

インストールに特に問題は見受けられない、とりあえずサブディレクトリタイプでインストール。ktai styleも稼動を確認。現状は/wordpress-mu/にて稼動。

が、ここで問題が発生。urlを確認するとドメインにwwwがない。サブディレクトリタイプにしたからか?

ブログの管理でドメイン部分にwww.を追加して更新・・・・・・・・・・エラー画面になって更新不能に。

インストールからやり直しか?とりあえずmysqlを覗いてみよう。(悲)

カテゴリー: wordpress, ファーストサーバー | 1件のコメント

WP-PageNaviプラグインは?

今まで使用していたWP-PageNaviプラグインですが、YurikoさんのところでWP-PageNavi を使わずにナビゲーション表示 (改良版)という記事がありましたので利用することにしました。プラグインの数は少ないほうがよいかなと~いうことの助けにもなります。

一応導入はくまさんのところのページナビゲーション機能を改版してみたりを利用してfunctions.phpに記述する方向で導入です。すっきりしていい感じですね!

敬意を表してお二人のブログにトラバしておきました。;)

カテゴリー: wordpress | タグ: | コメントをどうぞ

Role Managerプラグインの追加

次のプラグインの追加はRole Managerです。
ユーザの権限をいろいろ修正できるプラグインですが、権限の追加もできて便利です。

当方の環境ではブログを投稿する人と承認する人がいます。しかし、通常と違うのは投稿する人が公開権限を持っていて、承認する人は読むだけの権限しか持っていないということ。
承認する人といってもwebには疎くシステムには触らせたくないという意向が働き、未公開の文章が読めて口頭でもなんでも「いいよ!」と返事がもらえればよいという妙な感じです。
でも、投稿者はシステムの管理者からすると、決してwebに詳しいわけではなく、余計な部分には決して触らせたくない、かつhtmlソースやアップロードなど投稿に関する権限は全て与えたいというわけで、通常の権限では足りないのですね。

前置きはさておき、Role Managerをプラグインの追加から探してみましたが見当たりませんでした。
作者のサイトから直接ダウンロードしてzipファイルでそのままアップロード・インストールです。特に問題はありませんでした。
今回導入したバージョンは2.2.3。2.7対応はうたっていませんが一応使えるのでよしとします。

カテゴリー: wordpress | タグ: | コメントをどうぞ

tinymce-advancedプラグインの追加

インストールが終わったwordpressにいくつかのプラグインを追加します。

まずはtinymce-advancedの追加から。web作成にあまり精通していないユーザが使用するためいろいろと工夫が必要です。
wordpressにログインしてからメニューのプラグインを選択し新規追加を選びます。
キーワードにtinymce-advancedと入れて検索すればすぐにでてくると思います。
インストールを選ぶと「このプラグインは現在使用している WordPress のバージョンではテストされていません。」と注意されてしまいました。今後2.7.1に対応したバージョンが出るかもしれませんが、今は使用できるのでこのままインストールしてしまいます。
あとは勝手にインストールが完了しプラグインを有効化を押すだけで完了です。ずいぶん楽になりましたね~

カテゴリー: wordpress | タグ: | コメントをどうぞ

ファーストサーバーへのwordpress2.7.1のインストール

さて、ながらく更新していませんでしたが、ファーストサーバーにて現在のバージョンの新規インストールの案件がでましたので、覚書です。

まずはコンフィグレータにてデータベースの設定です。おっと忘れずにPHPをDSO版に切り替えてください。PHPインストールからバージョンの切り替えです。htaccessを設置するため必須です。

ではデータベース管理からデータベース用管理者アカウントの発行を行います。メールで届きますのでなくさないようにしましょう。次にデータベースサービスの起動です、ここまでは簡単ですね。
ここからデータベースを作成します。データベース操作でphpMyAdminを起動します。MySQL 接続照合順序はutf8_general_ciでデータベース名(wordpressやblogなど)を入力して作成を押してデータベースを作成します。

次にファイルのアップロードです。FTPソフトを使用してサーバにwordpressフォルダをアップロードします。好きな名前にリネームしてかまいません、とりあえずwordpressでインストールしてblogフォルダで運用するためそのままアップロードしました。

いよいよインストールです。http://www.example.com/wordpress/wp-admin/install.phpへアクセスしてwp-config.php ファイルを作成するをクリックしましょう。設定情報は以下の通りです。
データベース名:データベース作成で作ったデータベース名
ユーザー名:phpMyAdminにログインするときのアカウント(別にwordpress用に作成している場合はそのアカウント)
パスワード:phpMyAdminにログインするときのパスワード(別にwordpress用に作成している場合はそのパスワード)
データベースのホスト名:fsv(数字).mysql.db.fsv.jp(phpMyAdminの上部にも表示されています)
テーブル接頭辞:wp_(デフォルトのままでいいです。複数インストールする場合などは変更しましょう)
以上でインストールすればブログタイトルなどを入力する画面に進めます。ただし、ここではまだ文字化け対策を施していませんので、日本語のタイトルなどを入れるのは控えましょう。

インストールをするとパスワードが表示されます。忘れずに控えましょう。先ほどの画面で入力したメールアドレスにも送信されているはずです。

これでログインすれば管理画面に入れます。忘れずにパスワードを変更しておきましょう。

最後に文字化け対策です。htaccessを作成してインストールフォルダにアップロードします。
ついでにパーマリンク用設定も施してしまいました。

php_flag mbstring.encoding_translation off
php_value default_charset "UTF-8"
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

これでタイトルなどに日本語を入力しても文字化けしないはずです。

以上簡単ですがファーストサーバーへのwordpress2.7.1のインストールは完了です。

カテゴリー: wordpress, ファーストサーバー | 15件のコメント

JSeries Notifier のバージョン 0.8.3 がリリース

JSeries Notifier は、WordPress Plugins/JSeries で配布されるプラグインの更新通知を行うプラグインです。JSeries Notifier のバージョン 0.8.3 がリリースされました。
今回のバージョンアップは本プラグインで検知できませんとのことで(仕方ないのです・・・)すぐにでも JSeires Notifier の更新をしましょう。

詳しくはwordpressフォーラムでWordPress Plugins/JSeries の更新通知プラグイン JSeries Notifier

カテゴリー: wordpress | タグ: , | コメントをどうぞ

Webの文章?

少々脱線して技術外の話題になりますが、スギノさんのブログで文章について言及されていました。
雑誌はビジュアルや写真を魅せる紙媒体であり、書籍は文章を読ませる紙媒体なんだと思うと結論付けた上でWebはどうなんだと。

ホームページを作成することを生業とし、個人でもブログを書いていると、果たしてどっちなのだろうと考えてみた。
スギノさんはまだ仮設も暫定的な結論も出せていないとしているが、出せなくて当然なのかもしれない。
Webには雑誌的なページも書籍的なページも存在しているから。だと思う・・・(自信なし)

今存在しているほとんどの個人ブログはどちらかといえば日記の延長線。まあ書店で日記は売っていないので(最近は自分史みたいなジャンルもあるらしいけど・・・)、この場合はどちらにもあてはまらない気がする。
でも、中には書籍化されるほどのブログや写真ブログなども存在する。文章中心で自己的ではなく読む人に向けて書かれたブログは書籍に分類されるのかもしれない。逆に旅行写真を中心に載せたブログやモブログなどはライターの文章力がなくてもその写真を楽しむことができる雑誌的なページとも取れる。まあ、写真の構図や内容などが芸術的なものでなければ日記の延長戦の域をでないのかもしれませんが。

つまり、Webとは大きな書店か図書館なのだと言えるのかもしれない。

カテゴリー: 未分類 | コメントをどうぞ

Copyright © 2012 All rights reserved.