自動アップデート

新しいバージョンがリリースされると、ダッシュボードに「WordPress *.* が利用可能です ! アップデートしてください。」というメッセージが表示される。
v2.8がリリースされた際には、自動アップデートに不具合があるとの情報があらかじめ出回っていたため、ファイルを手動でFTPでアップせざるを得なかった。今回2.8.4にアップデートする際に初めて、自動アップデートを行った。
「WordPress 2.8.4 が利用可能です ! アップデートしてください。」のリンクをクリックすると、ウィザード形式で作業が始まり、FTP情報をきかれたところで、アカウントとパスワードを入力する。あとは自動的にファイルが更新され、アップデートが完了する。次回、ログインのタイミングでデータベースのアップデートが行われる。
なんと手軽!

今回はマイナーバージョンアップのため、見た目には違いがわからない。

検索結果をソートしたい

検索結果をソートするには、通常query_posts()で”orderby”を指定する。
ただし指定できる項目は、投稿テーブル(wp-posts)のフィールドに限られる。
他の項目(カスタムフィールドや、カテゴリ順など)でソートした場合には、
フィルターフックでSQLに手を加えるとよい。

たとえばカテゴリのid順にソートした場合は、
[sourcecode language=’php’]
add_filter(‘posts_join’, ‘my_join’);
add_filter(‘posts_orderby’, ‘my_orderby’);

function my_join($query){

global $wpdb;

if(is_search()){
$query .= ” JOIN $wpdb->term_relationships AS tr ON tr.object_id=$wpdb->posts.ID JOIN $wpdb->term_taxonomy AS tt ON tt.term_taxonomy_id=tr.term_taxonomy_id JOIN $wpdb->terms AS t ON t.term_id=tt.term_id”;
}

return $query;
}

function my_orderby($query) {

global $wpdb;

if(is_search()){
$query = ” t.term_id DESC, $wpdb->posts.post_date DESC”;
}

return $query;
}
[/sourcecode]

独自に作成したテーブルを追加することも可能だ。ただしやりすぎと負荷がかかるので、様子を見ながら対応すること。

ダッシュボードの投稿画面に入力セクションを追加したい

ダッシュボードの投稿画面に項目を追加するには、カスタムフィールドを利用するのが一般的だ。
独自の項目がある程度まとまっている場合には、add_meta_box()で入力セクションを追加したほうが、使い勝手がぐっとよくなるだろう。手順としては、ダッシュボードがロードされたタイミングでadmin_menu()をフックし、add_meta_box()を実行することで実装できる。

[sourcecode language=’php’]
add_action(‘plugins_loaded’, ‘my_init’);

function my_init() {

if(is_admin()) {
add_action( ‘admin_menu’, ‘my_dashboard’, 1);
}
}

function my_dashboard() {
add_meta_box(‘my_metabox’, __(‘今日のお天気情報’, ‘my_metabox’), ‘my_section’, ‘post’);

}

function my_section() {

$my_weather = ‘(初期値を設定またはDBから取得)’;
$my_high = ‘(初期値を設定またはDBから取得)’;
$my_low = ‘(初期値を設定またはDBから取得)’;

?>
天気:‘ />
最低気温: sysbirdテーマ コメントはまだありません

JavaSciptライブラリを読み込む

テーマやプラグインでJavaScriptを読み込む場合は、アクションフックのwp_print_scriptsを使用する。

[sourcecode language=’php’]
function add_myscript() {
wp_enqueue_script(‘myscript’, ’JavaScriptのフルパス’);
}

add_action(‘wp_print_scripts’, ‘add_myscript’);
[/sourcecode]

jQueryに依存したJavaScriptを読む込む場合は以下のようになる。wp_enqueue_script(‘jquery’);を行うことで、jQueryが2重に読み込まれることがなくなる。

[sourcecode language=’php’]
function add_myscript() {
wp_enqueue_script(‘jquery’);
wp_enqueue_script(‘myscript’, ’JavaScriptのフルパス’, array(‘jquery’));
}

add_action(‘wp_print_scripts’, ‘add_myscript’);
[/sourcecode]

プラグインでCSSを指定する

テーマではデフォルトでstyle.cssを使用するようになっている。
プラグインでも外部CSSファイルを使うことが可能だ。

プラグインで外部CSSファイルを指定するにはwp_register_style()で登録し、wp_enqueue_style()で読み込ませる。たとえば自分で用意したcssファイルを使いたい場合は、アクションフックのwp_print_stylesで以下のように記述する。wp-headではなくて、wp_print_stylesというのに気がつくのに時間を要した。

[sourcecode language=’php’]
function regist_my_css(){
wp_register_style(‘my_css’, ‘(CSSのフルパス1)’, array(), ”, ‘screen’ );
wp_register_style(‘my_css’, ‘(CSSのフルパス2)’, array(), ”, ‘screen’ );
wp_enqueue_style (‘my_css’);
}

add_action(‘wp_print_styles’, ‘regist_my_css’);
[/sourcecode]

プラグインをローカライズするには

英語で表示されるプラグインでも、翻訳機能を使って日本語で表示することができる。

外国語に対応しているプラグインであれば、potという拡張子のファイルが用意されいてる。
例えば、example.pot
Poeidtというアプリケーション(Windows用)を使って、example.potを翻訳する。
[ファイル]-[POTファイルをもとに新しいカタログを作成する]メニューでpotファイルを読み込む
必要箇所を翻訳し、名前を付けて保存する。
日本語化する場合、このときのファイル名はexample-ja.poにすること。
保存と同時にexample-ja.moが作成される

プラグインで指定してあるディレクトリにmoファイルをコピーする
load_plugin_textdomain(‘example’, PLUGINDIR . ‘/example/languages’);

プラグイン中で翻訳される箇所は、__(や_eの箇所となる。

詳細ページでコメント表示をカスタマイズ

コメント表示をカスタマイズするには、コメントの配列$commentを回して表示する。
$commentはテーマのcomments.phpからのみ参照できる変数となっている。

[sourcecode language=’php’]
foreach ($comments as $comment) {
custom_comments($comment, null, null);
}
[/sourcecode]

WordPress 2.7よりコールバックを指定することができる。
[sourcecode language=’php’]
wp_list_comments(‘type=comment&callback=custom_comments’);
[/sourcecode]

関数custom_comments()はfunctions.phpに作成しておく。

[sourcecode language=’php’]
function toriko_custom_comments($comment, $args) {

$GLOBALS[‘comment’] = $comment;

?>

  • さん