CMS構築を目的にPHPをベースとしたWordPress、CakePHPやPEARなどオープンソースを中心に解説しています

WordPress 2.5から使えるようになったショートコード機能を使ってみます。

ショートコード機能では、任意の処理を登録し、それを記事の文中からコールして結果を表示することができます。
とりあえず、サンプルを書いてその機能を確認してみます。

ショートコードを追加してみる

まずは、ショートコードの登録なのですが、functions.phpに以下の処理を追加します。処理を追加するのはプラグインでも構いません。

function shortcode_test(){
	return "ショートコードテスト!!";
}
add_shortcode('st', 'shortcode_test');

「st」というショートコード名で関数「shortcode_test」を登録します。関数の機能としては「ショートコードテスト!!」と表示するだけの処理です。

WordPressで管理画面にオリジナルの設定画面を追加してみます。

主にプラグインを作成する場合に、設定画面を追加する必要が生じると場合があります。
ただ、設定画面の追加は、アクションフックをプラグインに記述する事で実現できますが、functions.php上に記述しても同じ結果が得られます。

具体的なステップとしては、画面を構成するHTMLを含んだ関数1を構築し、その関数1をメニューに登録する処理を記述した関数2を記述し、そして関数2をアクションフックに登録するという流れになります。
初めてだと、この感覚を理解するのは難しいと思います。以下のサンプルを見ながら確認しましょう。

WordPressでプラグインを作ってみます。
今回は導入編として、バージョン3.2.1上で特に意味を持たないプラグインを作成してみたいと思います。

PHPファイルをプラグインフォルダに作成する

WPを設置したフォルダ内の「/wp-content/plugins/xxx.php」にPHPファイルを新規作成します。
ファイル名の「xxx」は任意ですが、他のプラグインと名前が被らないようにしなければなりません。そうは言っても、現状、WPのプラグインは無数に開発されているので、完全に衝突を避けるのは難しいかもしれません。プラグインを公開する場合は気を使う必要がありますが、個人的用途を作成する場合は、そこまで神経質になることはないかもしれません。

今回は確認のために、フッタに「Hello World!」を表示するだけのプラグイン「hello_world.php」を作成してみます。

プラグイン情報をコメントアウトで記述する

PHPに以下の内容を記述します。

/*
Plugin Name: Show Hello World
Plugin URI: http://helog.jp/
Description: test test test test test
Version: 1.0
Author: H.Y
Author URI: http://helog.jp/
*/

これらの内容は、WPの管理画面で表示される内容です。また、プラグインを公開する場合は、この内容で展開されるので、プラグイン検索などを含め考慮する必要があります。また、先ほども述べたように、プラグイン名については他の公開されているプラグイン名と被らないようにしなければなりません。さらに、日本語限定のプラグインでない限りは英語で記述することが奨励されています。

WordPressで記事を書く際に画像を追加すると、デフォルトの機能のままでは画像ファイルへのリンクが追加されるだけです。
例えば、「sample.gif」をアップロードした場合に、以下のコードが追加されます。

<a href="http://helog.jp/wp/wp-content/uploads/2011/05/sample.gif">
<img src="http://helog.jp/wp/wp-content/uploads/2011/05/sample-300x243.gif" 
alt="" 
title="wordpress" 
width="300" 
height="243" 
class="alignnone size-medium wp-image-1420" /></a>

画像への直リンクとは味気ないので、thickboxなどを組み込もうかと考えていたのですが、どうやらWordpressにはデフォルトでthickboxが用意されているようです。
利用方法は簡単で、以下のように「header.php」で関数「add_thickbox()」をコールするだけです。

MovableTypeはデフォルトでページ分割ができません。
例えば、記事数が100を超えたため、トップやアーカイブなどの記事リストページを10記事ずつに分割しページング処理を行いたいといった場合があります。しかし、MovableType本体だけではページを分割し、以下のようなリンクを生成するのは困難です。

「<>」

ほとんど必須の機能なので、いつになったらMTにデフォルトの機能として組み込まれるのかと前々から思っていたのですが、未だ実装されていません。

さて、そのような時はプラグイン「PageBute」が便利です。
静的ページ用ページ分割プラグイン:PageBute

このブログでは月別アーカイブを用意し、サイドメニューにリンクを設置してしました。
書き続けること3年、つまり12ヶ月の3倍で36つのリンクがずらっとリスト化されていたわけです。今後の運用も考えると、確実に増えていくリンクは見栄えやユーザビリティ的に良くないと思ったので、どうにか整理したいと調べていました。

すると、簡単に見つかりました。公式ドキュメントのほうで、アーカイブリンクをドロップダウンボックスで構築するといった方法です。
テンプレートタグ/wp get archives – WordPress Codex 日本語版

WindowsにMovableTypeをインストールするにあたって、Perlが動作する環境が必要になります。そこで、今回はActivePerlをインストールします。なお、WindowsにApacheやMySQLなどはインストール済みの状態から作業を始めます。

各種環境は以下の通りです。

OS Windows 7 Professional
Apache 2.2.12
MySQL 5.1.37
PHP 5.3.0
ActivePerl 5.12.2

通常、WindowsにはPerlが動作する環境が整っていません。
例えばMTのインストールマニュアルに従い、Xamppが入っている状態のサーバで、「http://xxx.xxx.xxx/mt/mt-check.cgi」にアクセスしMovableTypeのインストール環境を確認しようとすると以下のようなエラーが表示されます。

Error message:
couldn't create child process: 720002: mt-check.cgi 

WindowsでPerlを有効にする方法にはいくつかあるようですが、今回は最もシンプルな方法で実現してみます。

このサイトをWordPressで構築してあるのですが、気が付けば、ページング処理が入っていませんでした。
その辺いいかげんなので。。。

ページング処理とは、「前の記事」や「次の記事」、または「1 2 3」といったリンクのことですね。WordPressでは、記事リストやアーカイブリストで表示する記事の件数は限られているので、記事が多い場合、ページングがなければトップページから古いページへ辿れないという問題が発生してしまうんです。
記事の件数は限られていると言いましたが、設定は可能です。1ページあたり100件とかにすれば、リンクで辿れるかもしれませんが、ユーザビリティに欠けますね。
このブログも記事数が増え、古いページへの遷移が途切れていました。やっぱりページングは必要です。

WordPress移行手順のメモです。前提条件としては

  • WordPressのバージョンは3.0.0
  • 別サーバで別ドメイン、例えば「http://xxx.jp/」から「http://yyy.jp/」へ移行することを想定
  • DB環境の変更に伴いテーブルプレフィックス「wp_」を「wp2_」に変更(例えば移行先に既に別のWordPressがインストールされているなどの場合)

です。

旧サーバのバックアップ

旧サーバよりFTPなどでWordPress関連のソースを全てダウンロードします。また、旧サーバDBよりWordPress関連のテーブルを全てエクスポートします。デフォルトでテーブルのプレフィックスは「wp_」となっています。エクスポートにはphpMyAdminなどを利用して、テキスト形式でSQLを取得します。

WordPress 3.1から投稿フォーマットという機能が追加されているのですが、これまで活用できていなかったので、ここで少し勉強したいと思います。

投稿フォーマットでは、投稿内容を各フォーマットに合わせて、デザイン・レイアウトを切り替えることができます。
例えば、記事として投稿する場合でも、通常の投稿とは別で、リンク集や画像ギャラリーとしてレイアウトを分けたい場合に役に立ちます。

functions.phpでフォーマットを有効にしてみる

フォーマット機能を有効にするためには、functions.phpで以下を追加するだけです。

Monthly Archives

Search