「WordPress」カテゴリーアーカイブ

「最もダウンロードされるWordPressのプラグイン10」から抜粋

10 Most Downloaded WordPress Plugins of All Timeという記事から、WordPressのプラグインをピックアップしてご紹介します。

1位: All in One SEO Pack

当ブログはまだインストールしていませんが、受託のWordPress案件にはほぼ100%インストールしていると言って良いんじゃないかな…。titleタグとmetaタグ(description・keyword)の調整はもちろん、タグをkeywordに自動で使ってくれたり、自動でdescriptionを作ってくれたり(日本語対応が不安だが…)という機能が嬉しい。頻繁にアップデートされています。

2位: Akismet

ご存知、強力スパムブロック。説明の必要は無いかな。当ブログでインストール方法をちょこっと解説しています。

3位: Google XML Sitemaps

検索エンジンに正しくサイトを認知のに使う、XML サイトマップを自動で生成するプラグインです。SEO目的で使う機会が多いです。XMLサイトマップを手動で作ることも可能ですが、やはりサイトを更新した際、自動で反映されてほしいもの。GoogleやYahoo!、Bingに更新を通知する機能もあり、WordPress外のURLもサイトマップに含められるという優れモノ。完全日本語対応なのも嬉しいですね。

と、ここまでが3強と言ったところでしょうか。5位のContact Form7もよく使いますが、ここからは気になったプラグインを抜粋して紹介します。

続きを読む 「最もダウンロードされるWordPressのプラグイン10」から抜粋

WordPressに貢献しよう!

WordPressを触る様になって1年は経つので、なんとなく全体像が見えて来た感じがします。
せっかくなので、オープンソースコミュニティに貢献すべく、フォーラムでの質問に答えたりし始めました。

見始めるとまだまだ自分の無知を思い知らされますが、フォーラムを定期的にチェックするだけでも良い勉強にもなりますね。知らない関数を知ったり、問題に行き当たった際に、WordPressに詳しい方がどのように解決策を探すのかも、なんとなく分かってきます。これはダッシュボードに新着がでるわけですね!

WordPress › フォーラム

[WordPress] 今見ている記事と同じカテゴリの最新記事を表示する

関連する記事を出力するプラグインは色々存在するが、シンプルに今見ている記事と同じカテゴリの最新記事を表示させる方法を考えてみた。

  • 記事に複数のカテゴリが存在する場合、それぞれのカテゴリの最新記事を出力。
  • 最新記事のリストは、今見ている記事を除いて出力。

で、こんな感じで表示できました!

<?php $categories = get_the_category();
foreach($categories as $category):
$related_posts = get_posts('category='.$category->cat_ID.'&exclude='.$post->ID);
if($related_posts): ?>
<h2><?php echo $category->cat_name; ?>カテゴリの最新記事</h2>
<ul>
<?php foreach($related_posts as $related_post): ?>
<li><a href="<?php echo get_permalink($related_post->ID); ?>"><?php echo $related_post->post_title; ?></a></li>
<?php endforeach; ?>
</ul>
<?php endif; endforeach; ?>

各カテゴリの記事はget_posts()の初期値の5件まで表示されます。

[WordPress] 他サイトのRSSを読み込んで表示

WordPressはPHPでできているので、他サイトのRSSを読み込ませてサイドバーなどに新着記事を表示するのも簡単だ…と思っていたら意外と手こずったのでメモ。

いくつかプラグインも配布されているようなのだが、受託案件でデザイン的な制約があったので自作することとする。WordPressではfetch_rss()wp_rss()get_rss()という関数が用意されていて、楽に実装できるようだ。それぞれ、fetch_rss()が配列で取得、wp_rss()が<ul>付きでリスト表示、get_rss()が<ul>なしでリスト表示というのが主な違い。

使い方は以下ページで分かりやすく解説されています。

WebTecNote – [WP]wordpressでRSSを取得して表示

詰まったのは日時を表示させようと思ったため。wp_rss()とget_rss()のどちらも記事の投稿日時は表示されない。そのためfetch_rss()でRSSデータを配列で取得して表示してみるが、こんな風に表示される。

2009-05-13T08:26:08+09:00

これではちょっと困る。調べてみたところこの日時の表示形式はW3CDTFというそうで、この形式を解釈するparse_w3cdtf()という関数もあるみたい。なーんだ。

というわけで、関数にしてみました。functions.phpに書いておけばテンプレート中で使えます。

function custom_get_rss($feed,$maxitems){
$rss = fetch_rss($feed);
$items = array_slice($rss->items, 0, $maxitems);
if (empty($items)) {
echo '<li>No Items</li>';
} else {
foreach ( $items as $item ){
echo '<li><a href="' . $item['link'] . '" title="' . $item['title'] . '>';
echo $item['title'];
echo '</a>';
if($item['dc']['date']){
echo '<span class="date">' . date('Y年m月d日',parse_w3cdtf($item['dc']['date'])) . '</span>';
}
echo '</li>';
}
}
}

タネさえ分かってしまえば実に便利。
(上記サンプルはRSSの種類を考慮していないので読み込むRSSによっては動かない場合もあります。ご了承ください。)

[WordPress] プラグインを作ろう(2) 独自のカスタムフィールドを追加する

詳細仕様は決まっていないのですが、作りたいのは投稿画面に決まったフォーマットのデータを入力させるプラグイン。カスタムフィールドを使えば投稿画面に付加情報を入力することは可能ですが、毎回決まったフォーマットで入力させたい。

このような用途に使える良質なプラグインにCustom Field Templateがありますが、より厳格に入力フォーマットを限定し、さらに2次利用できればなぁと思っているので、自作してみることにします。

と、その前に便利なジェネレータを発見しましたのでご紹介します。

Fun With Plugins
ウィザード形式でプラグイン名など必要事項を入力していくだけで、WordPressのプラグインとしての骨格を作ってくれます。あとは関数などを追加していくだけ。

さて、上述のCustom Field Templateのソースを見ていくと、管理画面に任意の入力フォームを追加しているのはこの2行のようです。

require_once(ABSPATH . 'wp-admin/includes/template.php');
add_meta_box('cftdiv', __('Custom Field Template', 'custom-field-template'), array(&$this, 'insert_custom_field'), 'post', 'normal', 'core');

1行目は、2行目で使用しているadd_meta_box()関数を定義しているファイルなので読み込みは必須のようです。

2行目のadd_meta_box()が管理画面に任意の入力欄を追加しているみたい。Codexのadd_meta_boxのページをみるとそれぞれの引数の意味が分かります。

<?php add_meta_box('id', 'title', 'callback', 'page', 'context', 'priority'); ?>

idが管理画面に出現する入力欄のdivのid属性値。他とかぶらないようにすればよいでしょう。
titleが管理画面に出現する入力欄のタイトル。最初からあるものだと「抜粋」とか「カスタムフィールド」とか表示されている部分です。
callbackがコールバック関数名。ここで指定した関数が呼ばれると、なるほど。
pageはどの画面に追加するのかを指定。投稿ならpost、ページならpage、リンクならを入力。そのままですね。
contextpriorityはCodexを読んでもよく分かりませんが、無くても通るようなので無視。

と、管理画面に何かを追加できそうなことは分かったので、現時点でいったんプラグインの形にしてみました。

続きを読む [WordPress] プラグインを作ろう(2) 独自のカスタムフィールドを追加する