WordPress

[065] Twenty Ten のギャラリーの便利な機能色々

WordPress3.0 のデフォルトテーマ「Twenty Ten」ではギャラリーという便利な機能があります。これがとても便利なのですが、意外と使われていないようなのでご紹介します。
まずはご紹介するにあたり、WordPress のギャラリー機能を使って、フォトブログを作ってみました。


さて、Gallery には以下の大きくふたつの機能がありますので、順にご紹介します。

1.「画像を追加」画面の「ギャラリー」を使う


表示順が変えられます
画像をアップロードする「画像を追加」画面の「ギャラリー」ではアップロードした添付画像のタイトルや説明を更新できるだけでなく、表示する順序を入れかえることができます(右図 上の赤枠)。

画像一覧が表示できます
さらにキャラリー設定の画像の順序で「メニューの順序」を選んで「ギャラリー設定を更新」すると(右図 下の赤枠)、投稿画面にギャラリーの絵が表示されます(下図)。この絵はHTMLで表示すると挿入されたのがショートコードであることが分かります。
続きを読む

[064] WordPressプラグイン鬼太鼓を試してみた

WordBench埼玉での発表で、マルチサイトの子テーマの最新投稿をまとめて親サイトに表示してくれる便利なプラグイン「鬼太鼓(oni daiko)」の発表が作者の@webnist さんありましたので試してみました。

鬼太鼓のインストールと設定

鬼太鼓は公式プラグインとして登録されているので、プラグイン新規登録画面で「oni daiko」で検索して、インストールします。そして、最新投稿をまとめて表示したいブログで有効化します。

すると、管理メニューの下に鬼太鼓が表示され、ここから基本設定で以下の設定が可能になります。

続きを読む

[063] 子サイトに独自ドメイン(マルチサイト)

WordPressを勉強するコミュニティであるWordBenchのひとつ「WordBench埼玉」に参加しました。

WordPress3.0からWordPress MUを統合して導入されたマルチサイトがテーマで、マルチサイトのURLで様々な独自ドメインに設定できるプラグイン「WordPress MU Doman Mapping」のインストールや設定方法について発表があったのでローカル環境で試してみました。

マルチサイトではサブドメイン型で登録するとURLはサブドメイン名のみ設定できます。WordBench埼玉で発表のあったプラグイン「WordPress MU Doman Mapping」では、好きなURLを登録できるようになるという、とても便利なプラグインです。

まずはプラグイン「WordPress MU Doman Mapping」をインストールして有効化します。



すると、Domain mapping database table が作成されます。
そして、特別管理者のサブメニューに「Domain Mapping」と「Domains」が追加され、開くと指示が表示されるので実行します。

  1. プラグインフォルダの sunshine.php ファイルを wp-content にコピー
  2. wp-config.php にdefine( ‘SUNRISE’, ‘on’ ); を追加



続きを読む

[062] カスタムヘッダーにタイトルを表示する

WordPress3.0のデフォルトテーマ「Twenty Ten」ではカスタムヘッダーを使用することができる。さらに Twenty Ten の functions.php にはヘッダー画像にテキストを表示することができる設定があったので試してみた。

ヘッダーのテキスト設定

まず、子テーマの functions.pphp で、define( ‘NO_HEADER_TEXT’, false ); と設定して下さい。


すると管理画面左メニューの外観>ヘッダーで「ヘッダーのテキスト」を設定できるようになります。


続きを読む

[web] ブラウザ互換チェック Adobe BrowserLab

WordPress のデフォルトテーマ Twenty Ten をベースにしている当サイトを InternetExplorer で閲覧した場合の互換チェックを、 Twenty Ten はIE6でどう見えるでおこないました。

先日 CPI 主催の Adobe セミナーで上條さんから Adobe BrowserLab でもブラウザの互換チェックができるとご紹介いただいたので、実際に試してみました。
まず、実際に試した結果(下図)を紹介します。

やはり IE6 ではタイトルが2行になったり、サイドバーが崩れていたりしていますね。画像での表示のため動作を確認することはできませんが、様々なブラウザで確認できますし、またルーラーを表示することもできるなど、なかなか便利ですね。

以下、Adobe BrowserLab の使い方をご紹介します。
続きを読む

[061] 特殊文字を変換するショートコード

みなさんは例えば、<img src="http://example.com" />といった、ちょっとした特殊文字や、特殊文字を含むタグを投稿するとき、どうしていますか?私は特殊文字の対応表を見ながら手でHTMLエンティティに変換していたので、とても面倒でした。

そんなときに、セキュリティの観点から外部入力された特殊文字を無害化するために使用されていたと思われるPHP関数「htmlspecialchars」に出会い、ふとこの関数を使えば簡単にショートコードにできるなと思い試してみました。

htmlspecialchars 特殊文字を HTML エンティティに変換する



実際に、functions.php に追加したコードは以下になります。
続きを読む

[060] 添付画像を出力する色々

WordPress では get_children で添付画像を取得して関数「wp_get_attachment_image」や「wp_get_attachment_image_src」を使って表示することができることを、 添付画像をサムネイルで表示するでご紹介しました。今回は画像を登録した際に記入できる「説明」って使ってないなと思って調べてみました。

メディアに登録した画像の説明に「説明」、キャプションに「キャプション」と入力して保存してみます。そして、var_dump を使って、get_childrenで取得したオブジェクトをのぞいてみると、 post_content には「説明」、post_excerpt には「キャプション」と入っています。

なるほど、これなら get_children で取得した画像(複数が配列に格納されている)から1つオブジェクトを $image とすると、以下のように指定して使用することができますね。
(1) 説明: $image->post_content
(2) キャプション: $image->post_excerpt
続きを読む

[059] 子サイトにユーザを新規登録する方法

WordPressをマルチサイト化(ネットワーク化)して、子サイトでユーザアカウントを登録しようして、新規ユーザアカウントが親サイトに登録されてしまったことありませんか?今回、この問題を解決すべく、以下の2点を調査してみましたのでご紹介します。
(1) ユーザアカウント 新規登録の仕組み
(2) 子サイトにユーザアカウントを登録する方法

ユーザアカウント 新規登録の仕組み

まず、前提条件としてマルチサイト化して、特別管理者>設定から 「ユーザアカウントの新規登録を許可する」もしくは、「新規サイトおよびユーザーアカウントの登録をどちらも許可する。」 いずれかの設定になっている必要があります。


ユーザアカウント登録が許可された状態で、子サイトで新規登録をしようとする(http://(サブドメイン).(親ドメイン)/wp-signup.php にアクセスする)と、親サイトの wp-sign.up にとばされてしまいます。しかたなく、そこで新規ユーザ登録すると予想通り親サイトにユーザ登録されてしまいます・・・。そこで、親サイトでの新規ユーザ登録の仕組みを調べてみました。

実際にユーザアカウント新規登録の流れをコードから追跡してみると、以下のようになっていました。
ユーザアカウント 新規登録の流れ
1.ユーザアカウントの新規登録 ・・・ wp-sign.up
  ・ ユーザ名やメールアドレスの登録
  ・ データベースの signup テーブルに反映
  ・ 有効化するURLを登録されたメールに送信
2.ユーザアカウントの有効化 ・・・ wp-activate.php
  ・ ユーザアカウントを作成
  ・ ユーザアカウントをブログに登録
  ・ ユーザ新規登録をお知らせするメールを送付


続きを読む

[058] ロリポップでWordPress <2>マルチサイト化

ロリポップでWordPressをインストールして、サブドメインでマルチサイト化する具体的手順を紹介します。このテーマは以下の2記事で構成されています。まずサブフォルダにまとめるから紹介します。今回はサブドメイン型マルチサイトにする手順です。
URLをルートに見せる(サブフォルダにインストール) ※当記事で紹介するのはこちら
サブドメイン型マルチサイトにする

WordPress サブドメイン型マルチサイト化のNG事項

  • ×:WordPress は 「コロリポプラン」 ではインストールできません(詳しくはこちら)。
  • ×:ロリポップのドメインを使う場合は、サブドメインを自分で登録できないのでサブドメインNG
  • ○:独自ドメインを取得した場合は、サブドメインを手動で登録してサブドメインOK
  • ×:ムームードメインではワイルドカードを使うことができないそうです(問い合わせた方の話)
  • ×:WordPressのURLをサイトのURLと別にするとマルチサイト化時にエラーが発生

WordPress のバックアップ

WordPress のマルチサイト化をおこなうとデータベースの構造が変わるなどするため、原則的には戻すことはできませんのでご注意下さい。運用中のWordPressをマルチサイト化する場合は必ず事前にバックアップをおとり下さい。また、サブドメイン型のマルチサイトにしたい場合は URL がルートになっているかご確認下さい。例えば、http://○○○.com/×××/ の 「xxx/」 部分があるドメインだとサブディレクトリ型しか表示されず選択肢すらでてきません!!

WordPress のマルチサイト化(ネットワーク化)

wp-config.php ファイルの「編集が必要なのはここまでです !」と記載された行より前で WP_ALLOW_MULTISITE を true と定義して下さい。
続きを読む

[057] ウィジェットでコンテンツ管理してみませんか?

WordPress3.0 のデフォルトテーマ「Twenty Ten」の特徴のひとつは「豊富なウィジェットエリア」(合計6つ)ですね。実際にテーマ「Twenty Ten」のコードを見た方には、「get_sidebar( ‘footer’ ):」ってサイドバーかフッターかどっちだよと、つっこみを入れた人が多数おられたかと思いますw
また、カスタム投稿タイプを使うようになって、アーカイブページがなく一覧を表示するのにお困りの方も多くおられたと思います。

そこで、サイドバーやフッターだけでなくコンテンツエリアにウィジェットエリアを広げて、投稿(カスタム投稿タイプなど)を表示変更できるようにして、ウィジェットでコンテンツ管理できるようにしてみたいと思います。

ウィジェットエリアを定義する

ウィジェットエリアを登録する以下のコードを functions.php に加えて下さい。すると、外観>ウィジェットで、コンテンツウィジェットエリアHOMEが表示されます。
続きを読む

[056] ロリポップでWordPress <1>URLをルートに見せる

ロリポップでWordPressをインストールして、サブドメインでマルチサイト化する具体的手順を紹介します。このテーマは以下の2記事で構成されています。まずサブフォルダにまとめるから紹介します。
<1>URLをルートに見せる(サブフォルダにインストール) ※当記事で紹介するのはこちら
<2>サブドメイン型マルチサイトにする

サブドメインでマルチサイト化する場合、URLをルートにする必要があります。みなさんはそのために、wordpressのフォルダやファイルをルートフォルダに展開していませんか?すると、ルートフォルダがとてもちらかって見づらくなりますよね。そこで、まずはサブフォルダにインストールして、URLをルートに見せる方法をご紹介します。
(参考)WordPress を専用ディレクトリに配置する



WordPress サブドメイン型マルチサイト化のNG事項

  • ×:WordPress は 「コロリポプラン」 ではインストールできません(詳しくはこちら)。
  • ×:ブログのURLがルートになっていないとサブドメインNG
  • ×:ロリポップのドメインを使う場合は、サブドメインを自分で登録できないのでサブドメインNG
  • ○:独自ドメインを取得した場合は、サブドメインを手動で登録してサブドメインOK

    ×:ただし、ワイルドカードを使ってWordPressでサブドメインを増やすことはNG

WordPress のインストールの方法

WordPress のインストールには「簡単インストール」と、WordPress日本語サイトからアーカイブファイルをダウンロードしインストールする方法があります。またインストールするフォルダは以下の2通りの配置方法があります。サブフォルダにまとめる というテーマの通り今回は後者でインストールします。
  1. wordpress フォルダ内の全てのフォルダとファイルをルートにコピーしインストール
  2. wordpress フォルダをサブフォルダに配置しインストール
    インストール完了後に index.php や.htaccess の移動やURL設定を変更



サブフォルダにインストールし、URLをトップディレクトリに見せる手順


続きを読む

[055] カスタム投稿タイプやメディアにカテゴリーを登録する

WordBench川崎が11月14日にあり、WordCamp Nagoya 2010 について報告いただきました。参加できなかった私にはとてもありがたい会でした。

当日は WordCamp での発表や写真を中心に広い範囲に話題がおよびましたが、その中で @jim0912 さんの報告にて register_taxonomy がカスタムタクソノミー(カスタム分類)以外にも使えるのではないかとのお話があったので試してみました。

WordCamp Nagoya 2010



WordCampNagoya2010 発表「WordPress 3.0とは」

Copyright (C)2010Prime Strategy co.,ltd.

大曲さんの報告でカスタムタクソノミー(カスタム分類)を登録する関数「register_taxonomy」について以下のアドバイスをいただき、調べてみました。
register_taxonomy($taxonomy, $object_type, $args);
(1) パラメーター「 $taxonomy」 はカスタムタクソノミーだけでなくカテゴリーも使えるかも
(2) パラメーター「$object_type」 は投稿タイプ(post_type)を指定することができる

結論から言うと、register_taxonomy や register_taxonomy_for_object_type で登録できました。



  1. カスタム投稿タイプにカテゴリーをつける
    以下のコードのように、まずカスタム投稿タイプ「food」を登録して、register_taxonomy_for_object_type( $taxonomy, $object_type ) を使ってカスタム投稿タイプにカテゴリーをつけることができました。

    なお、以下のコードは、子テーマのfunctions.php に記載して下さい。以降はadd_action と register_my_taxonomy は記載を省略しています。
続きを読む

[web] FireQueryを使ってCSS作成

ブラウザ FireFox のアドオン(拡張機能)ですが、前回の FireBug に続いて FireQuery を紹介します。FireBug と同様に、ブラウザ「FireFox」で「Add-ons for Firefox 拡張機能 FireQuery」からダウンロードしてインストールして下さい。 → FireBugの使い方 FireFox Add-ons

FireQuery を使用することで、JQuery だけでなくCSS の開発もとても便利になります。今回は CSS 作成での FireQuery の使い方をご紹介します。



  1. FireQuery でセレクターを表示して選択できます。
    コンソールで >>> $(‘div’) とすると、<div>要素が全て表示されてマウスを重ねると該当箇所に色がつきます。そこで、表示された要素から選んでセレクタとして使用できますし、クリックすれば HTMLタブが開いてその要素の属性を確認できます。



  1. FireQuery ではJQuery のCSSを操作するコマンドが使用できます。

    JQuery のCSS操作コマンド: $( ‘selector’ ).css( ‘property’ , ‘value’ )
    Googleロゴを表示する要素 $(‘div#logo’) の background を yellowgreen に変更してみました
    これはもちろん、操作したブラウザのみで有効ですw

    実行したコード: $( ‘div#logo’ ).css( ‘background’ , ‘yellowgreen’ )
    続きを読む

[web] FireBugの使い方 FireFox Add-ons

ブラウザ FireFox に多くのアドオン(拡張機能)が存在しています。今回はそのなかで、私にとってWEB開発になくてはならなくなった FireBug というアドオンを紹介します。、

Firebug は、Web ページを閲覧中にクリック一つで使える豊富な開発ツールを Firefox に統合します。あなたはあらゆる Web ページの CSS、HTML、及び JavaScript をリアルタイムに編集、デバッグ、またはモニタすることが出来ます。(出典)Add-ons for Firefox 拡張機能 Firebug



まずは、あなたのブラウザを FireFox にしていただき、上記の(出典)からリンクして、「今すぐダウンロード」を押下すとインストールできます。※インストールしたアドオンはメニューのツール>アドオン>拡張機能 から設定や削除ができます。

インストールすると、BUGという名の通り虫マークがステータスバーに表示され、押すとFIreBug が起動します。※メニューのツール>FireBug>FIreBugを開く からも起動できます。



FireBug のタブで HTML を選択するとサイトのHTML構造が表示されます。さらに詳しく知りたい要素を選択すると以下が表示されます。
(1) サイトの該当箇所に色が付きます(青:選択要素、紫:Padding範囲、黄:Margin範囲)
(2) 右にスタイルシート、累積、レイアウト、DOM情報が表示されます



続きを読む

[Seminar] WordPress3.0の新機能とCMSへの応用

KDDI Web Communications 殿主催の CMS 8日間連続無料セミナーがあり、11月12日(金)のWordPress に参加させていただきました。会場もとても綺麗で、来場者もざっと50人以上の方が来られていて 大盛況でした。

講師は株式会社キャンプフォー 高山一登殿でした。
高山殿は WordPress のイベント「WordCamp Yokohama 2010」での発表がとても面白かったので、無料セミナーがあると聞いて参加しました。



参加者のうちWordPressのテンプレートタグが分かるのはおよそ半分という構成で、当日のセミナー全体の流れは以下のようになっていました。

  1. KDDI Web Communications 殿から告知、書籍の抽選
  2. WordPress の紹介、WordPress の簡単インストール
  3. サンプル1 フォトブログのテーマをライブコーディング
  4. サンプル2 KDDI Cafe のテーマをライブコーディング
  5. マルチサイト化の実演
  6. プラグインの紹介、質疑応答



以下は講師の高山殿のセミナーでの発表内容を、メモから書き起こしました。(もし、間違いや理解違い等がありましたらご容赦下さい。お教えいただければ訂正します。)
今回のセミナーは私にとっては、実際にコーディングする流れを見れたので、様々な機能や関数の使い方とあわせて非常にためになる内容でした。入門~初級者にとっても、実際に何をコーディングしているかを理解することは難しいものの、その結果として具体的なメリットや便利さを感じられたのではないかと思います。

今回のセミナーについては @crema さんのブログに詳細なメモが掲載されていますので、あわせてご参照になるとCMSソフトウェア WordPress3.0 の理解の助けになるかと思います。
とってだし自分用メモ「WordPress3.0の新機能とCMSへの応用」セミナー

続きを読む

[054] 記事がカスタムタクソノミーに属すか

カスタムタクソノミーを使用して記事の分類を始めました。
すると、記事がタクソノミーに属しているかを調べる関数(カテゴリーでの in category に代わる関数)がなく、困ったので調べてみました。

まずは手掛かりとなる in category がどのように動作しているのかを確認します。すると、in_category で使用されている is_object_in_term を使えばよさそうです。結論を先に言うと、is_object_in_term を以下のように使用して解決することができます。それでは、詳しくみていきましょう。

is_object_in_term( $post_id, $taxonomy, $terms )
引数1.$post_id:投稿ID
引数2.$taxonomy:タクソノミー名
引数3.$term:タームID、名前、スラッグもしくはArray
戻り値.記事がタクソノミーに属していたら true 、属していなかったら false を返す。


それにしても、in_taxonomy といった関数がないと、カスタムタクソノミーがますます使うのが難しい機能になってしまうな~。

続きを読む

[053] Twenty Ten ヘッダー画像サイズ変更

WordPress3.0 のデフォルトテーマ Twenty Ten はヘッダー画像を 外観>ヘッダー から好きな画像に変更することができます。
ヘッダー画像のサイズは 940px×198px で固定となっていて、ヘッダー画像をアップする際にトリミングをおこなってくれる機能もあって、とても便利です。

Twenty Tenのレイアウトを変える で全体の横幅を大きくしたので、今回は画像のサイズを変更してみました。

まず、変更方法を調べてみると Twenty Ten のテーマフォルダの functions.php の関数 twentyten_setup() にそれらしい箇所がありました。

	// The height and width of your custom header. You can hook into the theme's own filters to change these values.
	// Add a filter to twentyten_header_image_width and twentyten_header_image_height to change these values.
	define( 'HEADER_IMAGE_WIDTH', apply_filters( 'twentyten_header_image_width', 940 ) );
	define( 'HEADER_IMAGE_HEIGHT', apply_filters( 'twentyten_header_image_height', 198 ) );



ヘッダー画像のサイズを定義する HEADER_IMAGE_WIDTH、HEADER_IMAGE_HEIGHT の定義では apply_filter が使用されているので、フィルターフックで変更が可能だと分かります。これなら簡単にヘッダー画像のサイズを変更できそうです。

続きを読む

[052] 添付画像をサムネイルで表示する

例えばカスタム投稿タイプの添付画像をサムネイルの大きさで表示しようと思うと、結構手間がかかりますよね。

WordPress3.0 のデフォルトテーマ Twenty Ten では loop.php に、カテゴリー「Gallery」だった場合に画像を表示するコードがあります。そこで、これを参考にしてカスタム投稿タイプの添付画像をサムネイルの大きさで表示するプログラムを作成してみました(今回はひとつ目の画像のみ)。

さて、全体の流れは以下の通りとなります。

  1. カスタム投稿タイプの取得: WP_Query ⇒ the_post
  2. 添付の取得: get_children
  3. 画像の取得: wp_get_attachment_image_src



続きを読む

[051] Twenty Ten はIE6でどう見える

今さらですが、WordPress3.0 のデフォルトテーマ Twenty Ten をベースに運営している当サイトが IE6 でどう見えているのか気になったので試してみた。

使用したのは IETester です。ダウンロードはこちら (IETester

Windows 7 に特に問題なくインストールすることができました。

さて実際に見てみると・・・、以下の3点に気付きましたが、全体としては思ったほど崩れていないものだなと安心しました。まぁ、Twenty Ten テーマのおかげなのですが。
続きを読む

[050] 関連する投稿へのリンクを表示する

関連する投稿のリンクを表示させたいと思い、プラグイン 「WordPress Related Post for Japanese」をインストールしました。インストールしたのはずいぶん前で、どのような関連記事が表示されるのかと様子を見ていたのですが、非常にいい感じで関連する記事を表示してくれています。ありがとうございます。

WordPress Related Post for Japanese
WordPress Plugins/JSeries で見つけました hiromasa さん作成のプラグインです。
WordPress Plugins/JSeries

Yahoo! Japan が提供する日本語形態素解析APIを利用して投稿の下に「関連する記事」へのリンクを付与してくれているそうです。
続きを読む