WP: 逆引き(したいこと別)リスト
ただ今リバイズ作業中です。。
WordPress ME 2.0.x 系に関する情報です。2.1 系には当てはまらない場合があります。
WordPress の設置・管理 new
サブディレクトリに WP のファイルを置きたい
文字化けする
- 文字コードを揃える: WP の設定だけでなく、WPのファイル(PHPスクリプト)*1、PHP の設定、MySQL も。
- 多い事例は、PHP(mbstring 関連)か MySQL。
- XREA の場合 → XREAにUTF8設置時の文字化け
- MySQL 4.1 以上で、PHP の mbstring 周りを直しても変わらない場合も、前項のページをチェック。
- ローカル環境の場合 → hiromasa.zone :o) » XAMPP + phpMyAdmin で文字化けする場合
サイトの表示が重いので、速くしたい
- プラグイン wp-cache — 動的に生成される各ページの HTML をファイルとしてキャッシュし、訪問者からのアクセス時にキャッシュファイルを表示(動的生成しない)。
- gzip をオン (閲覧者が gzip 非対応環境だとサイトが見られないかも)
- → 表示速度関連記事
RSSリーダでエラーが出る
- エラーになるフィードの URI をブラウザで表示して、
- エラーメッセージを調べる。
- ページのソースを表示し、先頭に空白行がないかチェック。→ 広告が自動挿入されるサーバの場合
- コンテンツに不適切な文字が含まれていないかチェック。
トラックバックが飛んでないかも?
- 基礎知識
- 自分のサイト宛てにテストするときの注意
- 同じサイト宛ては、送信間隔が 15秒以上開いていないと弾かれる。弾かれても「ピン通知済み」と表示されてしまうので、ログで確認すべし。
- 相手のサイト側で
- 承認待ち or スパム扱いで捕獲されると、すぐには表示されない。
- goo ブログは WP からのトラックバックを受け付けないらしい。参照(2006.5.31)
- 自分のサイト宛てにテストするときの注意
- トラックバックログで送信結果をチェック → TBログ取得方法
- WP におけるトラックバック問題の原因切り分け、送信テスト用スクリプト
スパム対策
- 同梱の Akismet を有効化。(要 API Key) 関連記事
- 誤捕獲・捕獲漏れへの対応:
- 誤判定を手動で切り替える
- 日本語コメントの誤捕獲を発見しやすくするには
- コメント経験者を無条件で承認させる(Akismet に渡さない)→ プラグイン wp-kumonosu
- 誤捕獲・捕獲漏れへの対応:
- NGワード・コメント内リンク数で判断して、承認待ち or 削除できる(管理画面 > オプション > ディスカッション)。すり抜けが多いときなどに。
- 他のスパム対策プラグインもある。後で参考資料を挙げる。
- 使用テーマに Trackback Auto-Discovery が付いていると、スパムが多くなる可能性あり。
- 「Easy All」には付いていた。(最新版は不明)
- Trackback Auto-Discovery とは/外すには
サイドバーの表示変更
サイドバーのカスタマイズ(全般)
- WordPress CODEX » Customizing Your Sidebar
- default テーマの
sidebar.phpはいろいろやってて参考になる。
ページリストの表示変更
- テンプレートタグ
wp_list_pagesの ()内のパラメータで変更可。初期値でよいものは指定しなくてok。指定順序不問。複数指定は&で繋ぐ。 - 参照: WordPress CODEX » wp_list_pages
使用例:
例1) ページの「表示順」に表示/サイドバー用に
liタグ内にh2見出し付きulリスト形式/親子表示(デフォルトなので指定なし)<?php wp_list_pages('sort_column=menu_order&title_<h2>' . __('Pages') . '</h2>'); ?>例2) ページの「表示順」に表示/見出しなし
ulリスト形式/親ページのみ表示<ul> <?php wp_list_pages('sort_column=menu_order&title_li=&depth=1'); ?> </ul>例3) ページID=18 の子ページのみ表示/ページの「表示順」に表示/見出しなしリスト形式/「 - Y.n.j」というフォーマットで更新日を表示。ページに入っていない項目続きで表示。rose にて使用。
<ul> <?php wp_list_pages("child_of=18&sort_column=menu_order&title_li=&show_date=modified&date_format= - Y.n.j"); ?> <li>他の項目</li> </ul>
カテゴリリストの表示変更
- テンプレートタグ
wp_list_catsの()内のパラメータで変更可。初期値でよいものは指定しなくてok。指定順序不問。複数指定は&で繋ぐ。 - 参照: WordPress CODEX » wp_list_cats
- テーマ「EasyAll」では別のテンプレートタグ
list_catsを使っているので、指定方法が異なる。 使用例:
例1) カテゴリ名順/投稿数表示/親子表示・投稿のないカテゴリ非表示(デフォルトなので指定なし)
<?php wp_list_cats('sort_column=name&optioncount=1'); ?>例2) 現在のこのサイト(power source*)のサイドバー
記事数表示/RSSフィードへの画像付きリンク表示/カテゴリID順・親子表示・投稿のないカテゴリ非表示(デフォルトなので指定なし)<li id="categories"><h2>Categories</h2> <ul> <?php wp_list_cats('optioncount=1&feed=RSS&feed_image=フィードアイコン画像のURI'); ?> </ul> </li>
カテゴリの表示順序について
- パラメータ
sort_columnはカテゴリID 順かカテゴリ名順の 2択*2 で、カテゴリID はカテゴリ追加時に自動採番されるものなので、名前順にしたくないときは、カテゴリの追加順序に配慮が必要。 - 私は、後から追加になりそうな位置に空カテゴリを入れておいた。デフォルトでは該当記事がなければカテゴリリストに表示されないので問題ない。
wp_list_cats('sort_column=name')としたときの表示順は、カテゴリ名がアルファベットのものが先に、漢字のものが下になるが、漢字のカテゴリ名の前に半角スペースを入れたところ、そのカテゴリが一番上に表示された。この半角スペースは、wp_list_catsと 各記事でカテゴリを表示するテンプレートタグthe_categoryの表示時には取り除かれたので、WPコアではアリな手法なのかもしれない。*3
公式文書を見つけていないのと、カテゴリ名を扱うプラグインで考慮されるかが問題。興味のある方は試したり調べてみてください。
- パラメータ
- 表示順を変更できるプラグインがあるっぽい。ID を付け替えるタイプと、カテゴリリスト表示関数を工夫するタイプがあったような。(調べて出直します。。)
「最近の投稿 n件」とかを表示したい
- テンプレートタグ
wp_get_archivesを使う。表示オプションが少ないのが欠点。
(例)<?php wp_get_archives('type=postbypost&limit=5'); ?> - プラグイン Customizable Post Listings などを使うと、表示をカスタマイズできる。
- テンプレートタグ
get_posts()を用いた複数ループで表示 → WPJフォーラム - カテゴリーごとに最新記事タイトルを表示 の Nao さんの投稿
月別アーカイブの表示を短くしたい
- テンプレートタグ
wp_get_archivesのパラメータを使ってプルダウンメニューにする。(私のはまだ未完成。Java Script オフでも動くようにしたい。) - CSS で高さを指定してスクロールさせるとか。
デザイン・レイアウトの変更
「ページ」用テンプレートの作成
- 「ページ」は、記事と違って、ページ毎に表示レイアウトを選択できる。その表示レイアウトを定義したものを「ページ・テンプレート」という。
これを自分で作り、使用しているテーマのディレクトリに入れるだけで、ページ作成画面でテンプレートを選択できるようになる。 - ページ・テンプレートの説明と作り方: 参照: WordPress CODEX » Page Templates
- 「ページ」の表示は、「ページ」作成時に選択したページ・テンプレート、何も選択しなければ
page.php、page.phpが存在しなければindex.phpのレイアウトで表示される。 ちなみに、WP ME に同梱されるテーマに含まれる「ページ・テンプレート」は次のとおり。
- Default: デフォルト(
page.php), Archives (archives.php)、Links (links.php) - EasyAll: デフォルト(
page.php), Guest Book (guestbook.php), Pahe width comments (pagewidthkomment.php) - Classic: ページ・テンプレートなし
- Default: デフォルト(
- ファイル名やテンプレート名が同じでも、その内容が違えば表示も異なる。
- そのページ・テンプレートの入っているテーマでしか適用されないことに注意。
カテゴリごとに表示フォーマットを変えたい
- 参照: WordPress CODEX » Category Templates
- 一部分を変えるだけなら、if 文+コンディショナルタグを使った方が簡単、メンテも楽。
独自のデザインにしたい→新規「テーマ」作成
- テーマ・テンプレートに関するリファレンス: WPJ Codex » テンプレート
- 構成ファイルと説明: WordPress CODEX » Theme Template Files List
- Standing Tall » WordPress テーマの詳説(和訳)
テーマ「Default」等の「月」表示を文字化けしないようにする
- WordPress Japan フォーラム » 日付がきちんと表示されないへのtenpuraさんの投稿。これを直すと、日付フォーマットの「
F」で「n月」と表示されるようになる。 - 「
F jS」で「4月 29th」と表示されるのも変だから、テーマ内のjSの修正は必要だけど。 - 2.0.3 あたりで解消。
記事の冒頭を抜粋表示させたい new
- 「続きを読む」の形式で記事を表示させるには?
- 方法: 記事投稿画面で、区切りたい位置に
<!--more-->を挿入。ビジュアルリッチエディタの場合はボタン画像 2つめ。 - 表示の調節: テンプレートタグ
the_content()のオプションで指定。 - 続きをその場で表示させたい → プラグイン使用。(例)Show Hide “more” with WordPress
- 方法: 記事投稿画面で、区切りたい位置に
- アーカイブページ等で、「続きを読む」ではなく、2-3行の抜粋文を表示させるには?
- 表示方法:
- 抜粋を表示させたいテンプレートファイルのループ内に、テンプレートタグ
the_excerpt()があれば OK。 the_content()になっている場合、表示は「続きを読む」になっていると思うので、the_excerpt()に置換。- 両方ともない場合は、本文も抜粋も表示されないので、ループ内の表示させたい位置に
the_excerpt()を挿入。
- 抜粋を表示させたいテンプレートファイルのループ内に、テンプレートタグ
- 出力内容は 2種類: サイト上での抜粋表示・トラックバック送信・フィード配信(抜粋設定時)に使われる。
- 記事投稿画面で、抜粋オプション欄に抜粋文を入力。
- 抜粋オプションを入力せず、記事表示時に、本文の冒頭から一定語数分を出力させる。
- (注)日本語の場合、WP デフォルト(本家版・MEとも)では抜粋が正しく行なわれない。*4 jamさんのパッチを当てれば解決。参照:WP: 抜粋表示時の全文出力を修正
- 表示方法:
トップページにブログ記事でない情報を表示したい new
普通の webサイトのトップページのように、総合案内を出したりしたい場合。方法はいくつかある。
参照: Creating a Static Front Page « WordPress Codex
- プラグインを使用。
- 専用テンプレートファイル
home.phpを設置。 index.php内でis_home()を使う。
うちはコレ。is_home()だけだと次ページにも表示されてしまうので、こんな感じにしてます。<?php if ( is_home() && !is_paged() ) { include (TEMPLATEPATH . "/トップページ用テンプレートファイル名"); } ?>「トップページ用テンプレートファイル」は、
index.phpを見やすくするために 1ファイルにまとめたもの。includeの位置にコードを書いても OK。
投稿
記事のサムネイル画像のサイズ変更 update
記事中に表示されるサムネイルのサイズを変更するには wp_shrink_dimensions() 関数と inline-uploading.php を編集しなければならないようです。 WordPress Japan » Wordpress ME 2.0 - Docs » 投稿記事への画像挿入
- どう直すかなあ。。。対象は、
wp-admin/admin-functions.php-wp_shrink_dimensions()wp-admin/inline-uploading.php
- new プラグイン Flexible Upload を使えば自由自在。
記事の中で php を使いたい
- runPHP Plugin for WordPress を使う。
- 他にも類似プラグインあり。
記事の中で別の記事へのリンクを張りたい
- リンクを張る文字列が記事名でよい場合 — プラグイン Easy Post-to-Post Links などを使う。
- リンクを張る文字列を任意にしたい場合 — テンプレートタグ
get_permalink()を使う。
- 記事中で php を使えるようにした上で、次のように書く。
<a href="<?php echo get_permalink(記事ID); ?>" title="記事名とか">リンク文字列</a>- PHP Markdown の場合:
[リンク文字列](<?php echo get_permalink(記事ID); ?> "記事名とか")
- 投稿記事・ページのどちらにもリンク可能。ID は、編集画面へのリンク URI や 管理画面 > 管理 などで確認できる。
- 定型文として AddQuicktag に登録すると便利。
- 記事中で php を使えるようにした上で、次のように書く。
- 記事の末尾での一覧表示なら、
- 関連記事を表示するプラグインを使用。関連付けが手動・自動のもの、同カテゴリを表示するものなどがある。
- リンクされる側の記事からトラックバック。他サイトからのトラックバックと一緒くたになるけど、新しく書いた記事側で処理できるから簡単。
顔文字(スマイリー)を画像で表示させたい
- 設定・入力方法:
- 管理画面 > オプション > 投稿設定 にて、「フォーマットオプション::-)や:-Pをグラフィックに置き換えて表示する」にチェックを入れ、設定を更新する。
- 記事で「:-)」などの記号を記入する。
- (注)顔文字記号の前の半角スペース込みで定義されているので、半角スペースを入れないと変換されない。←私は当初、スペースを入れてなくて変換されませんでした。(^-^;
- 参照: WordPress Codex » Using Smilies
- 画像に変換できる顔文字は
wp-includes/vars.phpにて定義されている。 - 投稿画面でスマイリー画像をクリックして挿入できるプラグイン、スマイリー画像を変更・追加できるプラグインもある。
記事の目次を自動的に付けたい
- プラグイン Table of Contents Generator を使う。
検索
「ページ」も検索対象にしたい
- プラグイン Search Everything Wordpress Plugin を使う。
検索結果をハイライト(強調)表示したい
- プラグイン Search Word Highlight plugin for Multibyte を使う。検索結果ページからジャンプした単体記事ページでもハイライト可能。
- プラグイン Search Excerpt WordPress Plugin を使う。ヒット語句前後の文章の抜粋表示、検索語句の強調表示が可能。
未解決
かなり個人的なニーズだけど。。
複数カテゴリ全てに該当する記事のリストアップ & 表示
現在のページのパーマリンクを取得したい
$_SERVER['PHP_SELF']だと WordPress のトップページの URL になってしまうし。済
カテゴリページを表示したときの、そのカテゴリID とカテゴリスラッグを取得したい- カテゴリ名の取得はテンプレートタグがあるんだけど。
現在のカテゴリの RSS URI を表示したい
- カテゴリアーカイブ表示時に、当該カテゴリの説明文を表示させているので、そこに feed へのリンクも添えたい。せめて現在のカテゴリのパーマリンク URI が取得できれば、
feed/を付ければ完成するのにー。仕方ないので、サイドバーのカテゴリリストに feed アイコンを付けてます(この方法は上述)。 テーマの日本語化
- 同梱テーマの日本語用データは wp-includes/languages/ 下のファイルに含まれているけど、他のテーマ用に日本語データを追加したいときは、これを作り直さないといけないのか?
- WordPress Codex » Translating WordPress — ここに載ってるのかな・・・。
- 文字コードを指定できるエディタを使うこと。 [back]
sort_orderで昇順/降順は選べる [back]- WordPress.com で「ページ」の表示順を変える方法として、先頭の半角スペース数で制御する方法が載っていた ので、カテゴリでも試したら出来た、という話。なお、普通のWPの場合、ページには「表示順」という項目があるので、半角スペースを使う必要はない。 [back]
- 抜粋語数のカウントを単語間のスペースで行なっているため [back]



Zero Cool :
1 月 10th, 2007 at 18:48
始めまして。いつも参考にさせて頂いております。
早速ですが、サイドバーにリストされている Recently Updated はどうやって表示させていらっしゃるのでしょうか?もしよろしければ教えて頂きたいのですが・・・以前から、Recently Updated をリストしたかったのですがどうしてもできません・・・宜しくお願い致します。
ぼの :
1 月 10th, 2007 at 22:06
Zero Coolさん、はじめまして。
Recently Updated は、「Customizable Post Listings」というプラグインの 4種類の関数のうち、
c2c_get_recently_modified()を使って表示させています。導入メモの記事に、プラグインの配布元やドキュメントへのリンクがありますので、そちらから飛んでみてください。(ドキュメントは、私の記事だと英語の解釈が怪しいので、原文がおすすめです。)
ご希望の機能とマッチするといいのですが。。。
Zero Cool :
1 月 11th, 2007 at 0:40
ぼの様!
やりました!できました!!私がやりたかったことが!!!本当に感謝感激です。有難うございました。これからも本当に興味深い記事を宜しくお願い致します。
ぼの :
1 月 11th, 2007 at 22:53
やったぁー!よかったですね、Zero Coolさん!ぼのまでうれしくなりましたー。
o xein', angellein... :
8 月 23rd, 2007 at 18:40
このブログを立ち上げるまで その2…
tag []Popularity: unranked [?]… (more…)
WordPress情報関連サイト一覧 :
5 月 5th, 2008 at 12:59
[…] power source ≫ WP: 逆引き(したいこと別)リスト […]
Wordpress カスタマイズ・・・のための 「関数」 | 頭脳外部メモリー 「独学で趣味を満喫」 :
5 月 10th, 2008 at 23:58
[…] Wordpress Codex 本家テンプレートタグの説明・・・英語 power source* 逆引き(したいこと別)リスト […]