WordPressのカスタマイズメモ

WordPressで利用しているプラグイン、コード、設定などを紹介しています。こまめに書き換えたいです。このページの最終更新日はリソース情報にあります。

最終更新日:2008年1月4日(バージョン2.7)

プラグイン

Add Meta Tags→アンインストール
記事ごとにkeywordsとdescriptionを指定できます。descriptionには概要を入れるようにしました。(各種自動整形を無効にする)
Advanced Tag Entry→アンインストール
タグ管理。記事投稿ページから操作できます。本体に日本語スラッグの不都合があるのでプラグインを使用して回避しています。バグが修正されたので対策は不要になりましたが、デフォルトのままだとタグをつけにくいのでそのまま使うのもあり。
Custom Query String Reloaded→アンインストール
メインページでは5件、カテゴリーページで10件表示など、条件ごとに表示件数を変更できます。現在はテーマで表示件数を制御しています。(Custom Query String Reloadedを使わずに表示件数を調節する)
Disable Revisions and Autosave
履歴と自動保存を停止します。デフォルトのままだと下書きや履歴がどんどん溜まっていくので、よく記事の修正をする人や単独でブログを管理する人は入れておいた方がいいです。
Disable wpautop
自動整形機能を無効にします。ブロックレベル要素としてins/delタグを使った時などにpタグを自動挿入しません。
Kill WP Texturize
自動整形機能を無効にします。クォーテーションを変換しません。
Top Level Categories
カテゴリーアーカイブURIの「category」部分を削除します(例:http://az-store.nrym.org/note/category/web→http://az-store.nrym.org/note/web)。
Top Level Categories Fix→アンインストール
「Top Level Categories」使用時の不都合を解決します。2.7からなくても大丈夫なようなのでアンインストールしました。
WP Super Cache
ページをキャッシュし表示を早くするらしいです。要PHP5。
WP-HnConvert
見出しレベルを調節します。うちのブログは記事一覧(h1はブログ名)と個別記事(h1は記事名)で見出しレベルが違うので必須。プラグイン有効後テンプレートの<?php the_content(); ?><?php the_hn_converted_content(1); ?>というふうに書き換えます。正の引数であれば見出しレベルに足され、不の引数であれば引かれます。
候補(いつか使うかもしれない色々)

カスタマイズ

自動で挿入されるバージョン情報などを削除する

基本、そしてspam対策。以下のコードをfunctions.phpに書き加えると、ヘッダに自動挿入されるバージョン情報・wlwmanifest.xml・rsd へのリンクが削除されます。

remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'rsd_link');

Custom Query String Reloadedを使わずに表示件数を調節する

テンプレートタグ/query posts(WordPress Codex 日本語版)参考。1ページに表示する投稿数はデフォルトだと一括指定されてしまうので、ページ種類別に表示件数を変えます。例えばメインページに5件表示させたい場合はindex.phpのループの前に、

<?php query_posts('showposts=5'); ?>

カテゴリーページで10件表示させたい場合は、category.phpに、

<?php query_posts('showposts=10'); ?>

を挿入します。

最新の一件を除いた5件の記事を表示させたい場合は<?php query_posts('showposts=5&offset=1'); ?>、カテゴリーID1と2だけを10件表示する場合は<?php query_posts('cat=1,2&showposts=10'); ?>など。色々応用できて便利。

WP-PageNaviを使わずナビゲーション表示

WP-PageNaviを使わずにナビゲーション表示(改良版):Yuriko.Netと、関数化については私がWordPressをインストールしたとき最初にすること(der Gegenwart)のfunctions.php参照。プラグインを使わず実現できるのならその方がいいと思うので。

以下のコードをfunctions.phpに貼りつけてページナビゲーションを表示させたいところに<?php bmPageNavi(); ?>を挿入します。

function bmPageNavi() {
    global $wp_rewrite;
    global $wp_query;
    global $paged;

    $paginate_base = get_pagenum_link(1);

    if(($wp_query->max_num_pages) > 1):
        if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) {
            $paginate_format = '';
            $paginate_base = add_query_arg('paged', '%#%');
        } else {
            $paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') .
            user_trailingslashit('page/%#%/', 'paged');;
            $paginate_base .= '%_%';
        }
        $result = paginate_links( array(
            'base' => $paginate_base,
            'format' => $paginate_format,
            'total' => $wp_query->max_num_pages,
            'mid_size' => 5,
            'current' => ($paged ? $paged : 1),
        ));
        echo '<p class="pageNavigation">'."\n".$result."\n</p>\n";
    endif;
}

single.phpで使用。デフォルトでは時系列順の前後リンクになるところを、同一カテゴリー内で移動できるようにします。複数カテゴリーを選択した場合はカテゴリーIDが小さいものが優先されます。多分。

<p class="pageNavigation">
<?php previous_post_link('&laquo; %link', '%title', 'true') ?>
<?php the_category(',') ?>
<?php next_post_link('%link &raquo;', '%title', 'true') ?>
</p>

WordPress なサイト制作時に参考にしたサイトや使用中のプラグインなどのまとめ(eclucifer)からコピペ。ありがとうございます。

以下のコードをfunctions.phpに書き加え、header.php<?php meta_link(); ?> を挿入します。

function meta_link(){
    if(is_single()) {
        global $wpdb, $wp_query;
        $post = $wp_query->post;

        $prev_post = get_previous_post('true','');
        if($prev_post) {
            $prev_title = strip_tags(str_replace('"', '', $prev_post->post_title));
            echo '<link rel="prev" href="' . get_permalink($prev_post->ID) . '" title="' . $prev_title. '" />' . "n";
        }

        $next_post = get_next_post('true','');
        if($next_post) {
            $next_title = strip_tags(str_replace('"', '', $next_post->post_title));
            echo '<link rel="next" href="' . get_permalink($next_post->ID) . '" title="' . $next_title. '" />' . "n";
        }
    }
}

パンくずリスト

使っていませんが、一応。

<p class="topicPath"><a href="<?php bloginfo('home'); ?>"><?php bloginfo('name'); ?> index</a> > <?php the_category(' &gt; ', 'multiple'); ?> > <strong><?php the_title(); ?></strong></p>

各種自動整形を無効にする

wp-includes/default-filters.php内の一部をコメントアウトします。

Excerpt(概要)のp要素を無効化する

Add Meta Tagsの使用をやめたので。

add_filter('the_excerpt', 'wpautop');
↓
// add_filter('the_excerpt', 'wpautop');

記事内のp要素を無効化する

add_filter('the_content', 'wpautop');
↓
// add_filter('the_content', 'wpautop');

ブログの設定など

デフォルトのadminアカウントの修正または削除
管理者アカウントのが固定されているのはセキュリティ的によくないので。素直に「新規ユーザの作成→adiminの削除」でもいいですが、ユーザIDの欠番が出るのが嫌なので、phpMyAdmin→指定した接頭辞_users→user_loginからアカウントを修正しています。
ユーザー
「ビジュアルエディタを使用する」オフ、ニックネーム設定&ブログ上の表示名をニックネームにし、パスワード変更。
投稿設定
「:-) や :-P のような顔文字を画像に変換して表示する」、「不正にネスト化した XHTML を自動的に修正する」の両方をオフにします。
表示設定
トップページに表示されるのは最新の一件固定なので、適当に指定します。大体25くらい。
パーマリンク構造
/%year%/%monthnum%/%day%/%postname%
ディレクトリを削ると月別、年別のアーカイブになるところが好きなので。post_idだと、投稿やページを削除すると欠番になる、WP本体からデータをインポート・エクスポートすると投稿IDがずれる、ナビゲーションリンクやアーカイブページで不都合が出るなど色々問題があるのでpostnameを使った方がいいです。
投稿時
投稿作成画面
自動保存された下書きが溜まるバグがあるので、カスタムフィールドを触る前に一度保存すること。タイトルを書いたら即保存くらいの気持ちで。
抜粋
手製要約はフィードで表示される文章になるので、毎回入力しています。WP Multibyte Patch使用中に手製要約を書かなかった場合、110文字までを抜粋文として出力します。

リソース情報

URI
http://az-store.nrym.org/note/2008/09/12/34
日付
2008年9月12日
最終更新日
2009年1月5日
カテゴリー
前の記事
Opera最強伝説をもてはやす非モテたち
次の記事
Google Chromeをインストールした

案内

カテゴリー
月別アーカイブ
ブログ内検索