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

AJAX でカテゴリ絞込み検索する

WordCamp KOBE のとき、@shoshirasaka 君に相談された 「AJAX でカテゴリの絞込み検索をするための WordPress プラグイン」を、ちゃちゃっと書いたので公開します。

概要

リストボックスから選んだカテゴリに子カテゴリが存在する場合は、新たにその子カテゴリのリストボックスを表示します。
「検索」ボタンをクリックすると、選ばれたカテゴリの中で一番深い階層に属する投稿の一覧を「検索」ボタンの下に表示します。

どんな感じになるかは、以下を見てください。
Category Search : dogmap.jp

ダウンロード

WordPress > Simple Category Search « WordPress Plugins
続きを読む

WordCamp KOBE 2011

WordCamp KOBE 2011 に行ってきました

WordCamp KOBE 20112011年9月11日に開催されたWordCamp KOBE 2011 に行ってきました。
関西圏では2回目(前回は、WordCamp Kyoto 2009)、神戸では初の WordCamp です。
今回は、公式発表で来場者数 600 人弱の大規模なイベントになりました。
すごいすね。なんか、ここまで参加してくれる人が増えたイベントになったと思うと感慨深いです。

KOBE MERIKEN PARK ORIENTAL HOTEL今回は、め組さんに便乗させてもらって、スゴいホテルに泊まらせてもらったり、ビール呑んだりセッションでしゃべったりしてきました。
いやー、それにしても神戸、良い街すなぁ。今度は、ゆっくり個人的に観光しに行きたい。
まだ、六甲山から見る夜景も楽しんでないし、ディナークルーズもしてないし
続きを読む

WordPress で任意の HTTP ヘッダを出力するプラグイン 「HTTP Header Manager」

WordPress サイトで任意の HTTP ヘッダを出力するプラグイン HTTP Header Manager を公開します。

まだまだ、試験公開段階なので「こうして欲しい」「こういう機能があったらいい」などのご意見やご要望がありましたら、どしどしコメントしてください。
たぶん、スルーします。

概要

Web サーバからの HTTP レスポンスに任意の HTTP ヘッダを追加します。

ダウンロード

http-header-manager.zip
続きを読む

WordCamp KOBE 2011

WordCamp KOBE 2011 でしゃべってきます

WordCamp KOBE 20119/11(日) に開催される WordCamp KOBE(神戸) 2011 で、しゃべってきます
タイトルは「WordPress ハイパフォーマンスチューニング」。

最近、め組(デジタルキューブ)さんと一緒に仕事してるんですが、その一環で既存 WordPress サイトのパフォーマンスチューニング(主にサーバサイド)をやってます。
セッション内容は、その辺の話しになる予定。
セッション資料は、まだ準備中なので頑張らなくちゃです。

タイムテーブル見てもらうと分かるんですが、セッション会場が6つ有って、同時進行でいっぱいやってます。
僕のセッションと同時に Nao さんとか大曲さんが別会場でやってるので、お客さん来るか不安。
ぼちぼち頑張りますので、よろしくお願いします 😛

WordPress でサムネイルがある記事だけ表示する方法

「WordPress でサムネイルが存在する記事だけ一覧で表示したい」という相談を受けました。

普通に考えると以下のように has_post_thumbnail() を使って条件分岐すれば良さそうですが、これだと1ページに表示される記事数がバラバラになってしまいます。
また、ページネーションも上手く行きません。
(サムネイルが無い記事もページネーションの対象になってしまい、空白ページができてしまう)

<?php if(have_posts()): while(have_posts()): the_post(); ?>
<?php if ( has_post_thumbnail() ) {?>
--内容--
<?php } ?>
<?php endwhile; endif; ?>

こんな時は posts_where フィルターフックを使って、投稿を取得する際の条件文を変更してやりましょう。
続きを読む

Commenters Info

Commenters Info 0.6.6 リリース

Commenters Infoコメントを投稿してくれた人の情報をアイコンで視覚化したり、統計情報を表示したりすることのできる WordPress プラグイン Commenters Info の Ver.0.6.6 をリリースしました。
WordPress > Commenters Info « WordPress Plugins

今回の修正は、以下の2つ

  • Windows Phone からの投稿も判別するようにしました。
  • ブラウザ判別用のコードをちょっぴり書き直しました。

Windows Phone から投稿すると、赤い Windows ロゴが表示されますよ。
続きを読む

WordCamp Kobe

最近の WordPress 関係の話題

WordPress 関連の興味深いプラグインやら、イベントやらなにやら。
と言っても、私の周辺での話題ですが。

続きを読む

WordPress に OAuth プロバイダを実装する

WordPress に OAuth プロバイダ機能を追加するプラグインを作ってます。
とりあえずβ版ができたので、こちらで紹介しておきます。

現在、このプラグインでできることは。

  • アプリケーションの登録 (Consumer キーの取得)
  • Access トークンの発行
  • 発行された Consumer キー, Access トークンを使用して接続後に実行するメソッドを登録する
  • 発行された Consumer キー, Access トークンを使用して接続し、登録されたメソッドを実行して JSON データを返す

になります。

ダウンロード: WordPress > OAuth Provider « WordPress Plugins
一応 OAuth version 1.0 に対応しているので、既存の OAuth クライアントライブラリから制御できるはず。
以下、使い方。
続きを読む

Nginx + lsyncd で WordPress を負荷分散させる

ハイパフォーマンスHTTPサーバ Nginx入門最近、め組ことデジタルキューブさんと、一緒に仕事をやらせてもらってます。
今の所は、主に WordPress サイトの高速化とかやってるんですけど、その中で WordPress サイトを複数台のサーバで負荷分散させて高速化させる案件があったので、その時の作業内容をシェア。
最近はさくらの VPS とか、低価格の VPS が出てきてるので、個人でも手を出せる領域かもしれませんね。
今回は2台のサーバを使って PHP の処理を負荷分散しました。

構成は、こんな感じです。

  • プライマリサーバ ( vps1.example.com : 192.168.0.1 )
     

    • Nginx, Load Balancer、PHP FastCGI のアプリケーションサーバ
    • lsyncd (リアルタイム rsync を実現するためのサービス)
  • セカンダリサーバ ( vps2.example.com : 192.168.0.2 )
     

    • Nginx, PHP FastCGI のアプリケーションサーバ
    • MySQL
    • rsyncd

※ 説明のため IP アドレスはローカルアドレスに設定していますが、実際にはグローバルアドレスを使用しています。
ブラウザからの要求は、すべてプライマリサーバ ( vps1.example.com ) が受け取り、PHP の処理を二台のサーバに分散させます。
もちろん、処理が重くなってきたら、3台目、4台目 と追加していくことが可能です。
続きを読む

Blackbird Pie の吐き出す HTML を修正する

WordPress に簡単に Twitter のツイートを表示する Twitter Blackbird Pie というプラグインがあります。
このプラグイン、ショートコードで簡単にツイートを表示できて便利なんですが、吐き出す HTML がちょっとアレな感じです。

Blackbird Pie は、こんな感じの HTML を吐き出します。

<!-- tweet id : 87798635173130240 -->
<style type="text/css">
	#bbpBox_87798635173130240 a { text-decoration:none; color:#0084B4; }
	#bbpBox_87798635173130240 a:hover { text-decoration:underline; }
</style>
<div id="bbpBox_87798635173130240" class="bbpBox" style="padding: 20px; margin: 5px 0pt; background-color: rgb(192, 222, 237); background-image: url(&quot;http://a3.twimg.com/profile_background_images/53527310/gundam.jpg&quot;);">
	<div style="background: none repeat scroll 0% 0% rgb(255, 255, 255); padding: 10px; margin: 0pt; min-height: 48px; color: rgb(51, 51, 51); border-radius: 5px 5px 5px 5px;">
		<span style="width: 100%; font-size: 18px; line-height: 22px;">Blackbird Pie の WordPress プラグインが吐き出す HTML が、ちょっとアレなので修正した。後でブログに書く。
		<div class="bbp-actions" style="font-size: 12px; width: 100%; padding: 5px 0pt; margin: 0pt 0pt 10px; border-bottom: 1px solid rgb(230, 230, 230);">
			<img src="http://example.com/wp-content/plugins/twitter-blackbird-pie/images/bird.png" align="middle"/><a title="tweeted on 2011年7月4日 17:23" href="http://twitter.com/#%21/wokamoto/status/87798635173130240" target="_blank">2011年7月4日 17:23</a> via <a href="http://ubersocial.com" rel="nofollow" target="blank">UberSocial for BlackBerry</a><a href="https://twitter.com/intent/tweet?in_reply_to=87798635173130240" class="bbp-action bbp-reply-action" title="Reply"><span><em style="margin-left: 1em;"></em><strong>Reply</strong></span></a><a href="https://twitter.com/intent/retweet?tweet_id=87798635173130240" class="bbp-action bbp-retweet-action" title="Retweet"><span><em style="margin-left: 1em;"></em><strong>Retweet</strong></span></a><a href="https://twitter.com/intent/favorite?tweet_id=87798635173130240" class="bbp-action bbp-favorite-action" title="Favorite"><span><em style="margin-left: 1em;"></em><strong>Favorite</strong></span></a></div><div style="float: left; padding: 0pt; margin: 0pt;">
			<a href="http://twitter.com/intent/user?screen_name=wokamoto"><img style="width: 48px; height: 48px; padding-right: 7px; border: medium none; background: none repeat scroll 0% 0% transparent; margin: 0pt;" src="http://a2.twimg.com/profile_images/1357232956/wo_glasses_normal.png"/></a>
		</div>
		<div style="float: left; padding: 0pt; margin: 0pt;"><a style="font-weight: bold;" href="http://twitter.com/intent/user?screen_name=wokamoto">@wokamoto</a><div style="margin: 0pt; padding-top: 2px;">wokamoto</div></div>
		<div style="clear: both;"></div>
	</span></div>
</div>
<!-- end of tweet -->

注意: 構造が分かり易いように改行・インデント入れてます。

何がよろしくないかと言うと2〜5行目なんですが、ハレンチにも <head> 外に <style> タグを吐き出しちゃってます。
まぁ、個別のツイートでリンクの色とか変えたいと思うと、これしか方法が無いと思っちゃったのはしょうがないんですが
続きを読む