previous_post_link / next_post_link, 同じカテゴリの記事へリンク

WordPress, single.phpのナビゲーション、同一カテゴリの記事にリンクをはるテンプレートタグの記述方法で毎回右往左往するのでメモ。

previous_post_link('%link','%title', true);
next_post_link( '%link','%title', true);

【メモ】WordPress, テーマ内のJavaScriptをwp_enqueue_scriptに追加

テーマ内に置いたJavaScriptファイルをwp_enqueue_scriptで呼び出せるように設定する。

functions.php

function js_enque_method() {
   wp_register_script('example_script',get_bloginfo('template_url').'/js/example.js','jQuery','1.0');
   wp_enqueue_script('example_script');
}
add_action('wp_enqueue_scripts', 'js_enque_method');

テーマ内に[js]フォルダを作り、そのフォルダ内に[example.js]があります。
example.jsのVersionは1.0です。
example.jsはjQueryを必要とします。

CodaでもjQueryのコード補完をして欲しい

Codapanic.com の editor Coda がすこぶる便利です。

WordPressのThemeやPluginはほぼCodaで書いています。

一つだけ不満だったのはjQueryのコード補完ができないことです。
Twitterでそのことを愚痴ったら、@kzxtremeさんから jquery syntax mode って便利なものが公開されていると教えてもらいました。

http://digitalsandbox.net/index.php/project/category/jquery_syntax_mode/jquery_syntax_mode

サイトに丁寧に解説されているのでインストールも簡単でした。

digitalsandbox.netからzipファイルをダウンロードし解凍します。
解凍フォルダの .mode ファイルは ~/Library/Application Support/Coda/Modes/ にコピーします。
.clips ファイルはCodaを起動し「クリップ」ウインドウを開きます。ウインドウ > クリップ (⌃⌘C)
「クリップ」ウインドウの左サイドバーで右クリックし「グループの読み込み…」を選択し .clips ファイルを選択します。

Codaで使用は構文モードを jQuey を選択です。

jQuery コード補完はしてくれて嬉しい限りです。
まぁ、最新1.7系が出てこないのはしょうがないですかね。

クリップは他のeditorだとsnippet機能みたいなものでしょうか。
インストールした .clips には以下のものが入っていました。

ready+tab:
$(function() {
/*place jQuery actions here*/
 
});
 
$+tab:
$(’‘)
 
this+tab:
$(this)
 
func+tab:
function() {
 
}

func+tab: は補完の方が強いようで function になってしまいます。
fc+tab に変えました。

変更方法は 「クリップ」ウインドウ Function の [i] ボタンをクリックすると編集モードになります。
好みのキーコンビネーションに変えて「保存」をクリックするだけです。

ますますCodaが便利になりました。

Zend_Mailで日本語メール

Zend Framework Zend_Mailで日本語メール送信メモ。

require_once 'Zend/Mail.php';
$mail = new Zend_Mail('ISO-2022-JP');
$mail->setBodyText(mb_convert_encoding("メール本文。", 'ISO-2022-JP', 'UTF-8'));
$mail->setFrom('noreply@example.com',mb_encode_mimeheader(mb_convert_encoding('送信者名', 'ISO-2022-JP', 'UTF-8'),'ISO-2022-JP'));
$mail->addTo('sendto@example.com',mb_encode_mimeheader(mb_convert_encoding('送信先名称', 'ISO-2022-JP', 'UTF-8'),'ISO-2022-JP'));
$mail->setSubject(mb_convert_encoding('メールタイトル', 'ISO-2022-JP', 'UTF-8'));

WordPress, ループをカスタマイズする3つの方法

WordPressでループをカスタマイズするメモ。

query_posts()
http://wpdocs.sourceforge.jp/テンプレートタグ/query_posts

global $query_string;
// 全投稿出力
$posts = query_posts($query_string.'&posts_per_page=-1');
 
if (have_posts()) : while (have_posts()) : the_post();
   // ループ処理
   endwhile;
else;
   // not found
endif;
 
// ループをリセット
wp_reset_query();

オリジナルのループを元にカスタマイズしたい時に使用する。
wp_reset_queryを最後に実行する。

WP_Query()
http://wpdocs.sourceforge.jp/関数リファレンス/WP_Query

$args = array(
   'post_type'=>'page',
   'post__in' => array('595', '33', 44)
);
$query = new WP_Query($args);
 
while($query->have_posts()) : $query->the_post();
   // ループ処理
endwhile;
 
// 投稿をリセット
wp_reset_postdata();

オリジナルのループを作成、複数のループを作成。
wp_reset_postdataを最後に実行する。

get_posts
http://wpdocs.sourceforge.jp/テンプレートタグ/get_posts

$myposts = get_posts('posts_per_page=5&offset=1&category=1');
foreach($myposts as $post) :
   setup_postdata($post);
   // ループ処理
endforeach;

リセットはいらない。
引数は配列。

update 2012-03-19
get_posts の時Resetはいらないは間違い。
setup_postdataしてるのでResetしないと!

wp_reset_postdata();

ちゃんとリセットしてあげないと不幸が待ってる。

MAMP, MySQLの起動エラーに対処

MAMPのMySQLが突然起動しなくなった。

mysql_error_log.err を見るとInnoDBが起動できないのが原因の様子。

[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting

dbフォルダにあったlib_logfile0とlib_logfile1を捨ててたら起動できた。
なんでかな。