WordPressのカスタマイズメモ

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

最終更新日:2008年6月9日(バージョン2.7.1)

プラグイン

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); ?>というふうに書き換えます。正の引数であれば見出しレベルに足され、不の引数であれば引かれます。
候補(いつか使うかもしれない色々)

カスタマイズ

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

以下のコードを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 clean excerptというプラグインを作りました。カスタマイズの項目で各種自動整形無効化のやり方も載せています。

ブログの設定など

インストールしたディレクトリ・wp-config.phpのパーミッションを変更する
インストーラを使うとディレクトリ・wp-config.phpが変更されるのできちんと元に戻しておきましょう。WordPress のインストーラによって wp-config.php を生成した場合、ウェブサーバーによる書き込み権限が残っています。したがって、悪意あるプラグイン/テーマを実行すると、wp-config.php に悪いコードを入れられる可能性はあります。とのことです。
デフォルトのアカウント「admin」の修正または削除
管理者アカウントのが固定されているのはセキュリティ的によくないので。「新規ユーザの作成→adiminの削除」でもいいですが、私はユーザIDの欠番が出るのが嫌なので、phpMyAdmin→指定した接頭辞_users→user_loginからアカウントを修正しています。
wp-config.phpのセキュリティキーを設定する
セキュリティキーツール 1.1でランダムなキーが生成されるのでコピー&ペーストします。
ユーザー
「ビジュアルエディタを使用する」オフ、ニックネーム設定&ブログ上の表示名をニックネームにし、パスワード変更。
投稿設定
「:-) や :-P のような顔文字を画像に変換して表示する」、「不正にネスト化した XHTML を自動的に修正する」の両方をオフにします。
表示設定
トップページに表示されるのは最新の一件固定なので、適当に指定します。大体25くらい。
パーマリンク構造
/%year%/%monthnum%/%day%/%postname%
ディレクトリを削ると月別、年別のアーカイブになるところが好きなのでこういうURL設計です。post_idの場合、記事やページを削除すると欠番になる、WP本体からデータをインポート・エクスポートすると投稿IDがずれる、ナビゲーションリンクやアーカイブページで不都合が出るなど色々問題があるのでpostnameを使った方がいいです。
投稿時
抜粋
手製要約はフィードで表示される文章になるので、毎回入力しています。WP Multibyte Patch使用中に手製要約を書かなかった場合、文頭の110文字が抜粋文として出力されます。

blog comments powered by Disqus

リソース情報

分類
ソフトウェア
新しい記事
古い記事
URL
http://az-store.nrym.org/note/2008/09/12/34
SAKATORI Kihiro www@nrym.org
Published: 2008-09-12Last modified: 2009-06-09
分類
月別ログ
2010年10月2010年8月2010年6月2010年5月2010年3月2010年2月2009年12月2009年11月2009年10月2009年9月2009年8月2009年7月2009年5月2009年3月2009年2月2009年1月2008年12月2008年11月2008年10月2008年9月2008年8月2008年7月2008年6月2008年5月2008年4月