WordPress 小技覚え書き

投稿内のパスを変更する

MT からの乗り換え時に画像が色々な場所にアップされてしまっていたので、旧画像置き場のパスを変更しました。手作業で変更していたらそりゃもうあんた大変ですね。
phpAdmin などで以下を実行します。

UPDATE テーブル名 SET フィールド名 = REPLACE (フィールド名, '検索文字列', '置換文字列');

img ディレクトリから img-old ディレクトリに変更する場合、以下の記述になります。

UPDATE wp_posts SET post_content = REPLACE  (post_content, 'http://blog.chimanaco.net/img', 'http://blog.chimanaco.net/img-old');

特定の親カテゴリーの場合のみ表示する

例えばTee カテゴリに所属する記事を表示したい場合、以下のように記述します。

投稿画面で Teeカテゴリ にチェックを入れる場合

<?php if ( in_category( 'Tee' ) ): ?>
// Teeカテゴリ特有の 記述
<?php endif; ?>


Tee のサブカテゴリがあって、投稿画面で Tee カテゴリにチェックを入れない場合

(汎用性は無いですが…)

<?php if ( is_tee ( get_the_category() ) ): ?>
  // Teeカテゴリ特有の 記述
<?php endif; ?>

function.php に記述

// 6 = Tee カテゴリの番号

function is_tee($cat) {
	//$cat = get_the_category(); 省略
	$cat = $cat[0]; 
	$parents = (int)$cat->category_parent;
	if ( 6 ==$parents ){
		return true;
	}else {
		return false;
	}
}

ループの中で最初や最後や奇数とかを判別する

function.php で関数を設定します。

function isFirst(){
    global $wp_query;
    return ($wp_query->current_post === 0);
}

function isLast(){
    global $wp_query;
    return ($wp_query->current_post+1 === $wp_query->post_count);
}

function isOdd(){
    global $wp_query;
    return ((($wp_query->current_post+1) % 2) === 1);
}

function isEvery(){
    global $wp_query;
    return ((($wp_query->current_post+1) % 2) === 0);
}

例えば最後の記事のみ背景を変えたいなどという場合、最後のみ Last クラスを付与します。

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="section entry <?php if(isLast())echo Last; ?>">
</div>
<?php endwhile; else: ?>
<?php endif; ?>

css に 該当する class の記述をします。

.Last {
 background: #FF0000;
}

まだまだあった気がするが忘れてる

入れるといいことありそうなWordPressプラグイン

WordPress をしばらく弄っていたので自分用まとめ。

AddQuicktag

投稿画面にクイックタグを追加することができます。

AddThis Social Bookmarking Widget

ソーシャルブックマーク&シェアボタンを追加できます。
俺はプラグインだと設定しにくかったので直接コードを書き込みました。

All in One SEO Pack

SEO対策用プラグイン。記事ごとに Description や Keywords など細かい設定ができます。

brBrbr

投稿した本文中の改行を改行した分だけ<br />に変換します。
WordPressでは記事の中で複数行改行しても反映されません。正しいマークアップを優先するようです。
確かに文法的には正しくならないのですが、今回の場合は投稿者(当然 html 等には明るくない)の書きたいように記事を書かせたいということもあって導入しています。

Category Order

カテゴリーの順番を想い通りに並べられるようになります。

Contact Form 7

コンタクトフォームを簡単に設置できます。

Custom Permalinks

投稿画面でパーマリンクを変更することができます。そうそう使う事は無さそうですが、他のブログからの移行時に URL をカスタムしていたために WordPress のパーマリンク設定で実現できない、という場合などに使うと好いかもしれません。

EnglishDate

日本語版 WordPress の日付表記を英語にします。

Exec-PHP

記事内で PHP が使えるようになります。

Get Custom Field Values

カスタムフィールドの値を簡単に取得する事ができます。

// TEE というカスタムフィールドの値を取得する
<?php echo c2c_get_custom('TEE'); ?>

Google Analytics for WordPress

Google Analytics を簡単に WordPress に導入できます。

Google XML Sitemaps

Google サイトマップを自動で作成してくれます。

jQuery lazy load plugin

スクロールダウン時に画像を読み込ませる Lazy load の WordPress プラグイン。

Ktai Style

日本の携帯電話閲覧時の表示を最適化してくれます。

MapPress Easy Google Maps

各投稿画面で Google Map を編集できます。こんな感じで使いました。ほぼデフォルトです。
Wearable Ideas RLL – Infoshop

MoreLink#remove

通常moreタグを使用すると下記のようになります。

通常パーマリンク


http://blog.chimanaco.net/archives/20091104160812.php

「続きを読む」とかをクリックした場合


http://blog.chimanaco.net/archives/20091104160812.php#more-440

この #more 以降を削除してくれます。

Sniplets

カスタムショートコードを作成できます。

例えば、設定画面で onara に以下のコードを設定しておきます。

<p><strong>今日何回おならした??</strong></p>

投稿画面で、

[sniplet onara]

とすることで記事内に「今日何回おならした??」と表示することができます。共通する内容で記事外に出せない場合に便利かもしれません。

Top Level Categories

category スラッグを削除することができます。

Before


http://www.rll.jp/hood/category/tee

After


http://www.rll.jp/hood/tee

Topsy Retweet Button

ReTweet ボタンを設置できます。
設定で自動で位置を決めて表示させることができるのですが、俺は手動で配置する方が楽でした。

WordTwit

ブログ更新のお知らせを Twitter で通知します。

wp-hatena

「はてなブックマーク」するボタンを追加します。

WP-PageNavi

記事数が多い時に 1、2…10 とページナビゲーションを表示します。

WP Super Cache

記事をキャッシュして、サーバへの負担を軽減します。

WPtouch iPhone Theme

iPhone、Android などのスマートフォン用テーマ。

少し検索するだけで刺激的なタイトルの参考になるサイトが沢山出てくるので今後も調べて行きたいものです。