<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>WPCMS.jp &#187; カスタマイズ/ハック</title>
	<atom:link href="http://wpcms.jp/category/wordpress-customize-hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://wpcms.jp</link>
	<description>WordPressをCMSとした企業サイトやポータルサイト、Webサービス開発方法やTipsなど。 ファーストエレメントが運営する、WordPressに特化した技術系ブログ。</description>
	<lastBuildDate>Sat, 24 Dec 2011 15:54:27 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/category/wordpress-customize-hack/feed/" />
		<item>
		<title>WordPressダッシュボードのSSL化をユーザー単位で設定する</title>
		<link>http://wpcms.jp/670/</link>
		<comments>http://wpcms.jp/670/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 15:08:51 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[ダッシュボード]]></category>
		<category><![CDATA[プロフィール]]></category>
		<category><![CDATA[ユーザー]]></category>
		<category><![CDATA[ログイン]]></category>

		<guid isPermaLink="false">http://wpcms.jp/?p=670</guid>
		<description><![CDATA[WordPressダッシュボードのSSL化を、ユーザー単位で有効/無効に設定する方法を見つけたのでメモ。大したネタではありませんが。。 ダッシュボードやログインフォームにSSLを適用する時によくやるのはwp-config [...]]]></description>
			<content:encoded><![CDATA[<div style="background-color: #333333; float: left; padding: 10px; margin-right: 10px; margin-bottom: 10px;"><a href="http://wpcms.jp/wp/wp-content/uploads/2011/12/wordpress-ssl-option-for-each-user.jpg"><img src="http://wpcms.jp/wp/wp-content/uploads/2011/12/wordpress-ssl-option-for-each-user-300x237.jpg" alt="wordpress-ssl-option-for-each-user" title="wordpress-ssl-option-for-each-user" width="300" height="237" class="alignleft size-medium wp-image-678" /></a></div>
<p>WordPressダッシュボードのSSL化を、<strong>ユーザー単位で</strong><strong>有効/無効</strong>に設定する方法を見つけたのでメモ。大したネタではありませんが。。</p>
<p>ダッシュボードやログインフォームにSSLを適用する時によくやるのはwp-config.phpに下記のように定数をセットする方法ですが、これだとすべてのユーザーに問答無用でSSLが適用されてしまいます。</p>
<div class="code">define(&#8216;FORCE_SSL_ADMIN&#8217;, true); //ログインフォーム、ダッシュボードともにSSL化</div>
<p>または</p>
<div class="code">define(&#8216;FORCE_SSL_LOGIN&#8217;, true); //ログインフォームのみSSL化</div>
<p>この前者に相当する設定を、ユーザー毎にそれぞれのプロフィール画面からチェックボックスで行えるようにします。やることはいたってシンプル。お使いの<span style="color: #ff9900;">テーマのfunctions.php</span>を開き、最後の行あたりに下記を加えます。</p>
<div class="code"><span style="color: #ff9900;">add_action( &#8216;personal_options&#8217; , &#8216;use_ssl_preference&#8217; );</span></div>
<p>以上で、各ユーザーのプロフィール画面「ツールバー」の次に「https を使用する」という項目が現れます。チェックを入れて更新すると即座にhttps付きのURLにリダイレクトされます。その後、そのユーザーがダッシュボード内にアクセスする時と、ログインフォームを送信する時は常にSSLがオンになります。</p>
<p>設定はユーザー単位で可能。phpMyAdminでDBを見てみると、usermetaテーブルに各ユーザー毎に「use_ssl」という項目があり、SSLを使用する設定にしたユーザーは「1」、そうでないユーザーは「0」になっています。</p>
<p>この機能を実現するuse_ssl_preferenceという関数はwp-admin/user-edit.phpの69〜76行目にあります。「personal_optionsというアクションにフックすると使えるようになります」とコメントが書かれていますね。version 2.7から実装されていたようです。あと、WordPress.comでは元々<a title="WordPress.com フォーラム" href="http://ja.forums.wordpress.com/topic/49">このオプションは有効になっている</a>ようですね？</p>
<p>さて、久しぶりのブログ更新でした。前回の記事がWordBeach（WordBench名古屋）の記事なので、何とあの驚異的な盛り上がりを見せた「WordCamp Tokyo 2011」すらスルーしてしまったようです。。。また地味なネタを見つけたら書きますね。</p>
<p>【追記】</p>
<p>そうそう、最近「<a title="FE.labs" href="http://fe-labs.net/" target="_blank">FE.labs</a>」というブログを気付いた時に更新しています。私だけでなくて、当社の若手プログラマ等も書いています。今後はこのブログも私だけでなくて当社スタッフにも書いてもらい、Web関連の技術ブログはこの「WPCMS.jp」「FE.labs」の２本でやっていこうと考えています。お暇な時にでもどうぞ。</p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/670/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/670/" />
	</item>
		<item>
		<title>auth_redirect() を使ってみた。</title>
		<link>http://wpcms.jp/546/</link>
		<comments>http://wpcms.jp/546/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 07:07:59 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[auth_redirect()]]></category>
		<category><![CDATA[is_user_logged_in()]]></category>
		<category><![CDATA[MovableType]]></category>
		<category><![CDATA[リダイレクト]]></category>
		<category><![CDATA[ログイン]]></category>
		<category><![CDATA[会員制]]></category>

		<guid isPermaLink="false">http://wpcms.jp/?p=546</guid>
		<description><![CDATA[以前、紹介させていただいたauth_redirectというWordPressの関数ですが、先程使う用途があって使ってみたところ、最初ちょっとつまずいたのでメモ。 結論から書くと、auth_redirectを使う時は下記の [...]]]></description>
			<content:encoded><![CDATA[<p>以前、紹介させていただいたauth_redirectというWordPressの関数ですが、先程使う用途があって使ってみたところ、最初ちょっとつまずいたのでメモ。</p>
<p>結論から書くと、auth_redirectを使う時は下記のように書きます。</p>
<div class="code">&lt;?php if (!is_user_logged_in()) { auth_redirect(); } ?&gt;</div>
<p>どうやらこれはバグの様子？本家のサポートフォーラムで見つけました。コードはまだ見てませんが。</p>
<p>最初、単純にテンプレートにauth_redirect(); とだけ書き込んだところ、ログインしても再度ログインを促されるという状態に。<br />
それでググって上記の方法で解決。</p>
<p>&#8212;</p>
<p>auth_redirectという関数は、WordPressで会員制サイトをつくる時に便利です。テンプレートにこの関数の記述があると、ログイン状態を見て、もしログインしていない場合は、ログイン画面に誘導され、ログイン後にリクエストページへ自動的にリダイレクトされます。この機能によって、会員制サイトの構築が容易になります。</p>
<p>今回、工務店のウェブサイト制作において、施主専用ページをつくるのに使いました。お施主様にID/PASSを発行して、工事の進捗状況を見てもらえるようにするためのページ。他にもアイディア次第でいろいろできると思います。</p>
<p>ちなみにこれはMovableType でも可能ですが、<a href="http://www.sixapart.jp/movabletype/accesscontrol/" target="_blank">262,500円のプラグイン</a>が必要な様子。まぁ商用なら普通そうなりますよね。むしろWordPressが無償で使えるのがスゴイことで…しっかり寄付なり何なりしないとバチ当たるかも＞＜</p>
<p>※WordPress本体、テーマ、プラグイン全般に言えることですが、&#8221;実質的に&#8221;無料で使えてしまう代わりに誰も保証はしてくれない…トラブルが起きても自力で何とかしなければならないので、ビジネスユーザーは常に&#8221;もしもトラブルが起こった&#8221;時のことも考えていないといけないですね。WPが無料で使えるからって制作費もバカ安で提供してるとどこかで自分の首締めることになると思いますのでご注意ください。単純にMTは金が掛かる＆WPは&#8221;無料&#8221;と考えるとしたら、それは間違いです。</p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/546/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/546/" />
	</item>
		<item>
		<title>WordPress 2.7 テーマ/テンプレートの新機能まとめ。</title>
		<link>http://wpcms.jp/447/</link>
		<comments>http://wpcms.jp/447/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 06:17:31 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[2.7]]></category>
		<category><![CDATA[cancel_comment_reply_link()]]></category>
		<category><![CDATA[comment_form_title()]]></category>
		<category><![CDATA[get_footer()]]></category>
		<category><![CDATA[get_header()]]></category>
		<category><![CDATA[is_sticky()]]></category>
		<category><![CDATA[next_comments_link()]]></category>
		<category><![CDATA[post_class()]]></category>
		<category><![CDATA[privious_comments_link()]]></category>
		<category><![CDATA[query_posts()]]></category>
		<category><![CDATA[wp_list_comments()]]></category>
		<category><![CDATA[wp_logout_url()]]></category>
		<category><![CDATA[wp_page_menu()]]></category>
		<category><![CDATA[コメント]]></category>
		<category><![CDATA[コンディショナルタグ]]></category>
		<category><![CDATA[セキュリティ]]></category>
		<category><![CDATA[テンプレートタグ]]></category>

		<guid isPermaLink="false">http://wpcms.jp/?p=447</guid>
		<description><![CDATA[今年最初の記事だったようです。。。 あけましておめでとうございます。今年もよろしくお願いいたします。 WordPress 2.7がリリースされて１ヶ月近く経ちますが、過去バージョンにて実装されて知らない機能や関数がたくさ [...]]]></description>
			<content:encoded><![CDATA[<p>今年最初の記事だったようです。。。<br />
あけましておめでとうございます。今年もよろしくお願いいたします。</p>
<p>WordPress 2.7がリリースされて１ヶ月近く経ちますが、過去バージョンにて実装されて知らない機能や関数がたくさんあったので、ここで今のうちに2.7の新機能を確認しておこうと思い、主にテーマ（テンプレート）に関連したものの概要を調べてみた。</p>
<ol>
<li><span style="font-size:140%"><a href="http://wpdocs.sourceforge.jp/テンプレートタグ/wp_logout_url" target="_blank">wp_logout_url()</a></span><br />
ログアウト用のURLを表示するテンプレートタグ      </p>
<div class="code">&lt;?php echo <span style="color: #ff9900;">wp_logout_url($redirect)</span>; ?&gt;</div>
<p>従来、/wp-login.php?action=logout などとしていた部分はこのタグに置き換えることでセキュリティ的に望ましいURLが挿入されるらしい。<br />
引数（$redirect）には、ログアウト後に移動するページのURLを指定できる。<br />
ちなみに、wp_config.php内に define(&#8216;NONCE_KEY&#8217;) という項目が加わっている。このタグにも関連していると思われる。<br />
これらのセキュア・キーに指定した値がパスワードに付加されることで解読されにくくするもの。</li>
<li><span style="font-size:140%"><a href="http://wpdocs.sourceforge.jp/テンプレートタグ/wp_list_comments" target="_blank">wp_list_comments()</a></span><br />
コメント＆トラックバック＆ピンバック表示のためのテンプレートタグ。<br />
それぞれ分けてリスト表示できるようになった。      </p>
<div class="code">&lt;?php wp_list_comments(&#8216;<span style="color: #ff9900;">type=comment</span>&#8216;); ?&gt;</div>
<p>とするとコメントだけが表示される。他に<span style="color: #ff9900;"> trackback</span>、<span style="color: #ff9900;">pingback</span>を指定できる。</p>
<div class="code">&lt;?php wp_list_comments(&#8216;type=comment&amp;<span style="color: #ff9900;"><span style="color: #ff9900;">callback=mytheme_comment</span></span>&#8216;); ?&gt;</div>
<p>上記のように<a title="コールバック関数の用語解説" href="http://ew.hitachi-system.co.jp/w/E382B3E383BCE383ABE38390E38383E382AFE996A2E695B0.html" target="_blank">コールバック関数</a>も使える（関数はfunctions.phpなどに記述する）。<br />
また、下記の５つのテンプレートタグは、コメント表示部がスレッド化、ページ分割、ネスティングができるようになった（<a href="http://wpdocs.sourceforge.jp/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display" target="_blank">テーマの対応</a>が必要）ため、関連して新規追加されたテンプレートタグ。よりpostのループに近い感じになった。<br />
<span id="more-447"></span> </li>
<li><span style="font-size:140%"><a href="previous_comments_link" target="_blank">previous_comments_link()</a></span><br />
コメントを改ページする場合に、前ページへのリンクを表示</li>
<li><span style="font-size:140%"><a href="next_comments_link" target="_blank">next_comments_link()</a></span> <br />
コメントを改ページする場合に、次ページへのリンクを表示</li>
<li><span style="font-size:140%"><a class="new" title="テンプレートタグ/comment reply link" href="http://wpdocs.sourceforge.jp/wiki/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/comment_reply_link&amp;action=edit">comment_reply_link()</a></span><br />
既存コメントに返信するためのリンクを表示</li>
<li><span style="font-size:140%"><a class="new" title="テンプレートタグ/cancel comment reply link" href="http://wpdocs.sourceforge.jp/wiki/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/cancel_comment_reply_link&amp;action=edit">cancel_comment_reply_link()</a></span><br />
既存コメントへの返信を止める（コメント投稿欄を通常に戻す）ためのリンクを表示</li>
<li><span style="font-size:140%"><a class="new" title="テンプレートタグ/comment form title" href="http://wpdocs.sourceforge.jp/wiki/index.php?title=%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/comment_form_title&amp;action=edit">comment_form_title()</a></span><br />
コメント投稿欄の見出しを表示</li>
<li><span style="font-size:140%"><a href="http://wpdocs.sourceforge.jp/Migrating_Plugins_and_Themes_to_2.7#Post_Classes" target="_blank">post_class()</a></span><br />
テーマのスタイリングをシンプルに。<br />
記事のループを囲むdiv等の開始タグ内にこれを挿入すると、下記のCSSの一連のclassが記事に応じて挿入される。      </p>
<div class="code">
<ol>
<li>post</li>
<li>hentry (hAtom microformat のページ用)</li>
<li>category-X (xは記事が属するカテゴリのスラッグ)</li>
<li>tag-X (xは記事に付けられたのタグのスラッグ)</li>
<li>sticky</li>
</ol>
</div>
<p></p>
<div class="code">&lt;?php post_class(&#8216;<span style="color: #ff9900;">special</span>&#8216;); ?&gt; </div>
<p>と書くと、「special」という独自のclassを挿入できる（スペース区切りで複数指定可能）。<br />
ループ外で使う場合は、第２引数に記事IDを指定する。その記事に応じたclassが挿入される。</p>
<div class="code">&lt;?php post_class(&#8221;,<span style="color: #ff9900;">$post_id</span>); ?&gt;</div>
</li>
<li><span style="font-size:140%"><a title="テンプレートタグ/wp page menu" href="http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/wp_page_menu">wp_page_menu()<br />
</a></span><br />
&#8220;ページ&#8221;一覧を表示するテンプレートタグ。<br />
引数に     </p>
<div class="code"><span style="color: #ff9900;">show_home=1</span></div>
<p>を加えるとhome（サイトのトップ）へのリンクを含めてリスト表示。<br />
他はwp_list_pages()と同様。</li>
<li><span style="font-size:140%"><a href="http://wpdocs.sourceforge.jp/テンプレートタグ/query_posts">query_posts()</a></span><br />
引数に     </p>
<div class="code"><span style="color: #ff9900;">caller_get_posts=1</span></div>
<p>を指定すると、admin＞設定＞表示設定の「フロントページの設定」にて指定した記事はループから省かれる。</li>
<li><span style="font-size:140%">独自のheader、footerの読み込みを簡単に。</span>
<div class="code">get_header(&#8216;<span style="color: #ff9900;">myheader</span>&#8216;)</div>
<p>とすると、テーマフォルダ内に用意した header-myheader.php が読み込まれる。</p>
<div class="code">get_footer(&#8216;<span style="color: #ff9900;">myfooter</span>&#8216;)</div>
<p>とすると、テーマフォルダ内に用意した footer-myfooter.php が読み込まれる。</li>
<li><span style="font-size:140%"><span style="color: #ff9900;">is_sticky()</span></span><br />
コンディショナルタグ。<br />
現在のページが、フロントページに指定した記事である場合、true。  </p>
<div class="code">is_sticky(&#8217;17&#8242;)</div>
<p>とした場合、記事ID=17がフロントページに指定されている場合にtrue。</li>
</ol>
<p>参考ページ）</p>
<ul>
<li><a href="http://wpdocs.sourceforge.jp/Category:wp2.7" target="_blank">WordPress 2.7 特集</a> WordPress Codex 日本語</li>
<li><a href="http://wpdocs.sourceforge.jp/Migrating_Plugins_and_Themes_to_2.7" target="_blank">Migrating Plugins and Themes to 2.7</a> WordPress Codex 日本語</li>
<li><a href="http://wpdocs.sourceforge.jp/Migrating_Plugins_and_Themes_to_2.7/Enhanced_Comment_Display" target="_blank">Migrating Plugins and Themes to 2.7/Enhanced Comment Display</a>  WordPress Codex 日本語</li>
<li><a href="http://wpdocs.sourceforge.jp/テンプレートタグ" target="_blank">テンプレートタグ</a> WordPress Codex 日本語</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/447/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/447/" />
	</item>
		<item>
		<title>antispambot()、get_permalink()をショートコードで。</title>
		<link>http://wpcms.jp/374/</link>
		<comments>http://wpcms.jp/374/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 03:13:17 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[antispambot()]]></category>
		<category><![CDATA[functions.php]]></category>
		<category><![CDATA[get_permalink()]]></category>
		<category><![CDATA[ショートコード]]></category>

		<guid isPermaLink="false">http://wpcms.jp/?p=374</guid>
		<description><![CDATA[メールアドレスをスパムボットに収集されにくくするためのantispambot()関数を、投稿orページ内で使用するにあたり、従来はrunPHPやExecPHPを使用してきたけれど、それを「ショートコード」に置き換え。 以 [...]]]></description>
			<content:encoded><![CDATA[<p>メールアドレスをスパムボットに収集されにくくするためのantispambot()関数を、投稿orページ内で使用するにあたり、従来は<a href="http://wordpress.org/extend/plugins/runphp/" target="_blank">runPHP</a>や<a href="http://bluesome.net/post/2005/08/18/50/?lang_pref=en" target="_blank">ExecPHP</a>を使用してきたけれど、それを「ショートコード」に置き換え。</p>
<p>以下の関数をwp-content/themes/使用中のテーマ/funcitions.php 内に挿入。<br />
【追記】もし下記を追加後にビジュアルエディタが使えなくなったとしたら、functions.phpを編集した時にUTF-8以外の文字コードで編集した可能性があります。その場合は、UTF-8に適用しなおして、挿入したコードの前後の改行などもいったん削除すると直ります。 </p>
<div class="code">&lt;?php<br />
function antispambot_short($atts) {<br />
        extract(shortcode_atts(array(<br />
                &#8217;mail&#8217; =&gt; &#8221;,<br />
                &#8217;text&#8217; =&gt; &#8216;クリックしてメーラーを起動&#8217;,                <br />
        ), $atts));<br />
        $mail = antispambot($mail);<br />
return &#8217;&lt;a href=&#8221;mailto:&#8217; .$mail . &#8216;&#8221;&gt;&#8217; .$text .&#8217;&lt;/a&gt;&#8217;;<br />
}<br />
add_shortcode(&#8216;antispambot&#8217;, &#8216;antispambot_short&#8217;);<br />
?&gt; </div>
<p>あとは、投稿orページの本文で挿入したい部分に</p>
<div class="code"><span style="color: #ff9900;">[antispambot mail="xxx@example.com" text="お問い合わせはこちら"]</span></div>
<p>のように記述すればOK。 </p>
<p>企業サイトをWordPressで制作する場合、会社概要などにメールアドレスを記述することがあると思う。その時に、スパムボット対策でantispambot()でメールアドレスをHTMLエンティティ化するには、投稿orページ本文の中なので、上記プラグインを使用して本文内でPHPを実行すれば実現できる。が、これらのPHP実行プラグインはビジュアルエディタとバッティングするので、もしクライアントサイドでビジュアルエディタで編集するとPHPのコードが壊れて機能しなくなってしまう。</p>
<p>これをショートコード化すれば、（クライアントがその部分の記述を触らない限り）antispambotは使えるようになります。</p>
<p>メリークリスマス☆</p>
<p>【追記】</p>
<p>今更ながらにショートコードって便利＞＜っと、調子にのって、サイト内リンクを簡単にするために、get_permalink(記事ID)を使えるようにしてみました。</p>
<div class="code">&lt;?php<br />
        function get_permalink_short($atts) {<br />
                extract(shortcode_atts(array( <span style="color: #ff6600;"><span style="color: #ff9900;">//ショートコード内に指定された属性を取り出す</span></span><br />
                        &#8217;id&#8217; =&gt; &#8221;, <span style="color: #ff6600;"><span style="color: #ff9900;">//未指定の場合の初期値</span></span><br />
                        &#8217;text&#8217; =&gt; &#8221;, <span style="color: #ff6600;"><span style="color: #ff9900;">//同上</span></span><br />
                        &#8217;title&#8217; =&gt; &#8221;, <span style="color: #ff6600;"><span style="color: #ff9900;">//同上</span></span><br />
                        &#8217;target&#8217; =&gt; &#8221;, <span style="color: #ff6600;"><span style="color: #ff9900;">//同上</span></span><br />
                ),$atts));<br />
                $link = get_permalink($id); <span style="color: #ff6600;"><span style="color: #ff9900;">//指定された記事IDから、get_permalink()によってリンクURLを取得</span></span><br />
                if($text == &#8221;)<br />
                        $text = $link; <span style="color: #ff6600;"><span style="color: #ff9900;">//リンクテキストが指定されない場合はURLを出力</span></span><br />
                if($title !=&#8221;)<br />
                        $title = &#8216; title=&#8221;&#8216; .$title .&#8217;&#8221;&#8216;; <span style="color: #ff6600;"><span style="color: #ff9900;">//title属性が指定されている場合は書式をつくる</span></span><br />
                if($target !=&#8221;)<br />
                        $target = &#8216; target=&#8221;&#8216; .$target .&#8217;&#8221;&#8216;; <span style="color: #ff6600;"><span style="color: #ff9900;">//target属性が指定されている場合は書式をつくる</span></span><br />
                return &#8216;&lt;a href=&#8221;&#8216; . $link . &#8216;&#8221;&#8216; . $title . $target . &#8216;&gt;&#8217; . $text .&#8217;&lt;/a&gt;&#8217;; <span style="color: #ff6600;"><span style="color: #ff9900;">//リンク書式全体を結合して返す</span></span>      </p>
<p>        }</p>
<p>        add_shortcode(&#8216;link&#8217;,'get_permalink_short&#8217;); <span style="color: #ff6600;"><span style="color: #ff9900;">//linkというショートコードが指定されたら上記のget_permalink_short関数を実行する<br />
 </span></span></p>
<p>?&gt;</p></div>
<p>投稿ページでは</p>
<div class="code"><span style="color: #ff6600;"><span style="color: #ff9900;">[link id="1"]</span></span></div>
<p>と書くだけで、サイト内の記事ID=1の記事へのリンクを挿入できます。<br />
<a href="http://example.com/archives/1/">http://example.com/archives/1/</a></p>
<div class="code"><span style="color: #ff6600;"><span style="color: #ff9900;">[link id="1" text="こちらをご覧ください" title="ショートコードのレシピ♪" target="_blank"]</span></span></div>
<p>と書くと <br />
<a title="ショートコードのレシピ♪" href="http://example.com/archives/1/" target="_blank">こちらをご覧ください</a><br />
とすることもできます。  </p>
<p>パーマリンク構造やスラッグを変えてもリンクエラーになりません。でもビジュアルエディタ使ってる時は別ウィンドウからリンクテキストをドラッグ＆ドロップするだけでリンク貼れるので、手間を省く意味はあまりないかもですw</p>
<p>こんな具合で慣れてしまえば仕組みは一緒なので、投稿ページ内で使いたい関数があったらぜひ自作ショートコード作成にチャレンジしてみては？プラグインづくりのトレーニングにもなるかも。 </p>
<p>参考ページ）<br />
<a title="ショートコードの解説ページへ" href="http://wpdocs.sourceforge.jp/ショートコード_API" target="_blank">ショートコードAPI  WordPress Codex 日本語</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/374/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/374/" />
	</item>
		<item>
		<title>登録ユーザーのみに閲覧制限。</title>
		<link>http://wpcms.jp/343/</link>
		<comments>http://wpcms.jp/343/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 02:37:04 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[auth_redirect()]]></category>
		<category><![CDATA[リダイレクト]]></category>
		<category><![CDATA[会員制]]></category>
		<category><![CDATA[制限]]></category>

		<guid isPermaLink="false">http://wpcms.jp/?p=343</guid>
		<description><![CDATA[登録ユーザーのみ閲覧可能にする方法は？ WordPress Forum auth_redirect()という関数があるんですね↓ http://codex.wordpress.org/Function_Reference [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ja.forums.wordpress.org/topic/1055?replies=2" target="_blank">登録ユーザーのみ閲覧可能にする方法は？</a> WordPress Forum</p>
<p><strong>auth_redirect()</strong>という関数があるんですね↓<br />
<a rel="nofollow" href="http://codex.wordpress.org/Function_Reference/auth_redirect">http://codex.wordpress.org/Function_Reference/auth_redirect</a></p>
<p>ページ内にこの関数が設置されている場合、もしログインしてないとログイン画面にリダイレクトされるようです。そしてログイン後、そのページに自動的にリダイレクトされます。社内用やプライベートなサイト、会員制サイトなどに使えるでしょう。</p>
<p>あるいは、ページ内の部分的な制御なら以下の方法もあります。</p>
<div class="code">&lt;?php if ( $user_ID ) : ?&gt;<br />
&#8212;登録ユーザーかつログイン中のみ閲覧できるコンテンツ&#8212; <br />
&lt;?php endif; ?&gt;</div>
<p>テーマフォルダ内にあるcomments.phpに使われている上の書き方を借りれば、ページ内のある特定の部分の閲覧制御もできますね。</p>
<p>【追記】<br />
上の書き方だとちょっと不安になり、以前使った事があるコードを確認しました。でもこの時のWPは2.0.10です。参考になれば。</p>
<div class="code">&lt;?php global $current_user, $user_ID;<br />
if (($current_user-&gt;id != 0) &amp;&amp; ($user_ID != 0)) { ?&gt;</p>
<p>&#8212;登録ユーザーかつログイン中のみ閲覧できるコンテンツ&#8212; </p>
<p>&lt;?php } else { ?&gt;</p>
<p>&#8212;閲覧にはログインが必要である旨のメッセージ&#8212;</p>
<p>&lt;?php } ?&gt;</p></div>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/343/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/343/" />
	</item>
		<item>
		<title>記事をランダムに呼び出す。</title>
		<link>http://wpcms.jp/297/</link>
		<comments>http://wpcms.jp/297/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 12:05:28 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[array_rand()]]></category>
		<category><![CDATA[foreach()]]></category>
		<category><![CDATA[get_posts()]]></category>
		<category><![CDATA[query_posts()]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ランダム]]></category>

		<guid isPermaLink="false">http://wpcms.jp/?p=297</guid>
		<description><![CDATA[実はquery_posts()にorderby=randという引数を与えるとランダムに記事を取得できることを忘れて（いや、知らずに；）、無駄なことをしてしまいました。ver2.5からはrandという値が使えるようになった [...]]]></description>
			<content:encoded><![CDATA[<p>実はquery_posts()にorderby=randという引数を与えるとランダムに記事を取得できることを忘れて（いや、知らずに；）、無駄なことをしてしまいました。ver2.5からはrandという値が使えるようになったんですね。</p>
<p>そのまま消すのももったいないので、いつかの何かのヒントのためにメモ。</p>
<p>まずはquery_posts()でランダムに記事を取得する方法。<br />
（条件：カテゴリID=3に属する記事を5件、ランダムに取得）</p>
<div class="code">
&lt;?php query_posts(&#8220;cat=3&amp;showposts=5&amp;orderby=rand&#8221;); ?&gt;<br />
&#8212;- 通常のループ &#8212;-
</div>
<p>シンプルですねぇ。</p>
<p>■記事を１つだけ呼び出す場合<br />
<span id="more-297"></span></p>
<div class="code">
&lt;?php<br />
$pickup = get_posts(&#8220;category=3&#8243;);<br />
$key = array_rand($pickup);<br />
$post = $pickup[$key];<br />
?&gt;<br />
&lt;?php if( &#8220;&#8221; != $post): ?&gt;<br />
&lt;?php setup_postdata($post); ?&gt;<br />
&#8212;- ループの中身 &#8212;-<br />
&lt;?php else: ?&gt;<br />
&lt;p&gt;記事はありません&lt;/p&gt;<br />
&lt;?php endif; ?&gt;
</div>
<p> </p>
<p>■記事を複数呼び出す場合</p>
<div class="code">
&lt;?php<br />
$pickup = get_posts(&#8220;numberposts=5&amp;category=3&#8243;);<br />
$key = array_rand($pickup,count($pickup));<br />
$posts = &#8220;&#8221;;<br />
for($i =0; $i &lt;count($key); $i++){<br />
$posts[$i] = $pickup[$key[$i]];<br />
}<br />
?&gt;<br />
&lt;?php if( &#8220;&#8221; != $posts): ?&gt;<br />
&lt;?php foreach($posts as $post): ?&gt;<br />
&lt;?php setup_postdata($post); ?&gt;<br />
&#8212;- ループの中身 &#8212;-<br />
&lt;?php endforeach; ?&gt;<br />
&lt;?php else: ?&gt;<br />
&lt;p&gt;記事はありません&lt;/p&gt;<br />
&lt;?php endif; ?&gt;
</div>
<p> </p>
<p>フォーラムにも参考になりそうな記事があります。<br />
<a href="http://ja.forums.wordpress.org/topic/111?replies=12">http://ja.forums.wordpress.org/topic/111?replies=12</a></p>
<p> <br />
プラグインもあります（今回はその後ちょっと複雑な処理が絡んだので使うのはパスしましたが）<br />
「<a href="http://coffee2code.com/wp-plugins/customizable-post-listings/">Customizable Post Listings</a>」<br />
<a href="http://coffee2code.com/wp-plugins/customizable-post-listings/">http://coffee2code.com/wp-plugins/customizable-post-listings/</a><br />
昔からあるプラグインで、しばらく放置されていましたが、４月にいっきにアップデートされました。<br />
c2c_get_randam_posts() という関数が用意されています。<br />
※ver2.5まで、となってますが使えるんじゃないでしょうか。</p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/297/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/297/" />
	</item>
		<item>
		<title>2.6.xでカスタムフィールドが複製されるバグ。</title>
		<link>http://wpcms.jp/250/</link>
		<comments>http://wpcms.jp/250/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 05:55:50 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[プラグイン/ウィジェット]]></category>
		<category><![CDATA[運営Tips/注意点]]></category>
		<category><![CDATA[2.6]]></category>
		<category><![CDATA[Post Revisions]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[バグ]]></category>

		<guid isPermaLink="false">http://wpcms.jp/?p=250</guid>
		<description><![CDATA[カスタムフィールドを使用するプラグインは、場合によってキー＆値のセットが複製されることがあるようです。 WordPress 2.6.x “Duplicate Custom Field” Issue alexking.or [...]]]></description>
			<content:encoded><![CDATA[<p>カスタムフィールドを使用するプラグインは、場合によってキー＆値のセットが複製されることがあるようです。</p>
<p><a href="http://alexking.org/blog/2008/09/06/wordpress-26x-duplicate-custom-field-issue" target="_blank">WordPress 2.6.x “Duplicate Custom Field” Issue</a> <a href="http://alexking.org" title="http://alexking.org" class="autohyperlink" target="_blank">alexking.org</a> (2008/9/6)</p>
<p>2.6から備わった「Post Revisions」機能による影響のようですが、使用するプラグインが、記事を保存する時に実行されるsave_postというフックが持つ２つのパラメータの内、$postではなく$post_idを使っている場合に複製される問題が起きるようです。</p>
<p>記事のリビジョンは、リビジョン自体がオリジナルの記事とは別の$post_idを持っています。そしてそのリビジョンを保存する時に、オリジナルの記事を保存する時と同じsave_postというフックが実行されるため、$post_idというパラメーターを参照した時に<strong>「リビジョンの」</strong>$post_idを読み、結果「カスタムフィールドが未登録」と判断されて、追加されてしまうようです。</p>
<p>保存後その記事の編集画面を開くと、オリジナル記事に保存されたカスタムフィールドと各リビジョンに保存されたカスタムフィールドが同時に表示され、ダブって表示された状態になります。</p>
<p><span id="more-250"></span></p>
<p>&#8212;</p>
<p>MT形式のインポート機能をカスタマイズして、エクセルから複数のカスタムフィールドを持つ大量の記事をインポートしていたところ、いくつかの記事でこの「カスタムフィールドが複製される」現象が確認され、原因を調べ始めたところでした。しかしどのタイミングで複製されたのかはっきりわかっていないんです。WP上で記事を再編集しても複製されるわけではありません。インポートに失敗した時なのか。カスタムフィールド追加の部分のコードの書き方が悪いのか？</p>
<p>&#8212;</p>
<p>この問題を抱えるプラグインの、とりあえずの解決方法として、以下のような方法が提示されています。</p>
<p><code>add_action('save_post', '（関数名）', 1, 2);</code></p>
<p><code>save_postフックの$post_idだけじゃなく$postというパラメーターも利用できるようにして、</code><br />
カスタムフィールドを追記する部分の関数の先頭で、</p>
<p><code>if ($post-&gt;post_type == ‘revision’) {<br />
return;<br />
}</code><code><br />
（従来のコード）</code></p>
<p>「もし（保存しようとしている記事が）リビジョンだったら何もしない」と付け加える。2.6以降、オリジナル記事ではなくリビジョンの場合はpost_typeに「revision」という値も持つようになったのでそれで判断できるようです。</p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/250/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/250/" />
	</item>
		<item>
		<title>本：WordPress2.5でつくる！最強のブログサイト</title>
		<link>http://wpcms.jp/208/</link>
		<comments>http://wpcms.jp/208/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 01:07:23 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[else]]></category>
		<category><![CDATA[XAMPP]]></category>
		<category><![CDATA[イベント]]></category>
		<category><![CDATA[インストール]]></category>
		<category><![CDATA[テキストエディタ]]></category>
		<category><![CDATA[バックアップ]]></category>
		<category><![CDATA[プラグイン]]></category>
		<category><![CDATA[文字化け]]></category>
		<category><![CDATA[翻訳]]></category>

		<guid isPermaLink="false">https://sv69.xserver.jp/~fe01/wordpress4cms.net/208/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>先週、予約してあった<strong>WordPress本</strong>が届いて、今週からようやくじっくり読み始めましたが、なかなか読み応えありますよ。</p>
<p>『WordPress2.5でつくる！最強のブログサイト』田中広将・志村俊朗 共著／ソーテック社</p>
<div style="float:left;margin:0 5px 5px 0"><iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=greece-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4881666444&#038;fc1=8D8D8D&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=FFFFFF&#038;bc1=000000&#038;bg1=161616&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></div>
<p>まず、内容が幅広い上に、初心者にもわかりやすい解説。<br />
（順不同）</p>
<p>・ドメイン取得からDNSの設定<br />
・インストール、画面構成の解説<br />
・テーマとプラグインの基本<br />
・テキストエディタの選び方、文字コードの問題<br />
・CSSの書き方<br />
・メール投稿で文字化けする原因<br />
・携帯からの投稿<br />
・PHPの基本<br />
　～関数のしくみ<br />
　～ループの動作解説（for、if～else）<br />
　～変数、配列の解説<br />
・XAMPPを使ったローカルPCにWPを構築する方法<br />
・phpMyAdminでのバックアップ<br />
・WordPressを取り巻く環境、動作原理</p>
<p>など、これ１冊あればインストールからPHPでの拡張までWordPressに関することがひととおり理解できるのではないでしょうか。要所要所で有益なプラグインも紹介されています。</p>
<p>中級者以上には、プラグインの作成方法の解説もあります。</p>
<p>・フィルター、アクション、ショートコードの原理、開発のコツのようなetc.</p>
<p>他に</p>
<p>・poEditでのプラグインの翻訳<br />
・PHPエラーのトラブルシューティング</p>
<p>なども。こういったことが、初心者にもわかるように丁寧な文章で解説されている印象です。中級者以上にも有益だと思います。WordPress 2.6がすでに出ていますが、基本的な構造は同じですので十分に役立つと思います。</p>
<p>今週末は自力でのプラグイン作成に挑戦してみようか？！とモチベーションが高まっているところです。</p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/208/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/208/" />
	</item>
		<item>
		<title>WordPress for iPhone リリース。</title>
		<link>http://wpcms.jp/207/</link>
		<comments>http://wpcms.jp/207/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 06:34:21 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[Safari]]></category>
		<category><![CDATA[Store]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[カメラ]]></category>
		<category><![CDATA[スナップショット]]></category>
		<category><![CDATA[写真]]></category>

		<guid isPermaLink="false">https://sv69.xserver.jp/~fe01/wordpress4cms.net/207/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>iPhone / iPod touch向けのApp（アプリケーション）がリリースされました。iTunes App Storeで無料でダウンロードできます。</p>
<p>■対象：<br />
<a href="http://WordPress.com" title="http://WordPress.com" class="autohyperlink" target="_blank">WordPress.com</a>（ブログサービス）<br />
または<br />
WP 2.5.1以上</p>
<p>『<a href="http://publisherblog.automattic.com/2008/07/22/wordpress-for-iphone/" target="_blank">WordPress for iPhone</a>』 WordPress Publisher Blog（2008/7/22）</p>
<p>■スナップショット：<br />
<a href="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App01.jpg" target="_blank"><img src="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App01-thumbnail2.jpg" width="66" height="100" border="0" align="" alt="App01.jpg" /></a> <a href="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App02.jpg" target="_blank"><img src="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App02-thumbnail2.jpg" width="66" height="100" border="0" align="" alt="App02.jpg" /></a> <a href="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App03.jpg" target="_blank"><img src="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App03-thumbnail2.jpg" width="66" height="100" border="0" align="" alt="App03.jpg" /></a> <a href="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App04.jpg" target="_blank"><img src="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App04-thumbnail2.jpg" width="66" height="100" border="0" align="" alt="App04.jpg" /></a> <a href="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App05.jpg" target="_blank"><img src="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App05-thumbnail2.jpg" width="66" height="100" border="0" align="" alt="App05.jpg" /></a> <a href="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App06.jpg" target="_blank"><img src="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App06-thumbnail2.jpg" width="66" height="100" border="0" align="" alt="App06.jpg" /></a> <a href="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App07.jpg" target="_blank"><img src="http://wpcms.jp/wp/wp-content/themes/wpcms/_images/App07-thumbnail2.jpg" width="66" height="100" border="0" align="" alt="App07.jpg" /></a></p>
<p><span id="more-207"></span><br />
　<br />
■できること：</p>
<p>複数のWPサイトを管理できる。<br />
写真も添付できる。<br />
カメラで撮影、即添付（App内で完結）。<br />
投稿前にプレビューできる（Safariなのでほぼそのまま）。<br />
投稿日、タグ、カテゴリが設定できる。</p>
<p>■注意：<br />
WP本体側で、XML-RPC経由での投稿を受け付けるようにしておく。</p>
<p>　管理画面＞設定＞XML-RPC</p>
<p>にチェックを入れる。</p>
<p>■（ちょっとだけ）触ってみて：</p>
<p>スムーズに投稿できます。写真貼付して「Save」したら記事が投稿されてしまいましたが、たぶん「Done」というボタンがあってそっちを押すべきだったんですね。これは慣れかな。</p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/207/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/207/" />
	</item>
		<item>
		<title>WordPress.orgの新しいテーマ/テンプレート配布場所</title>
		<link>http://wpcms.jp/206/</link>
		<comments>http://wpcms.jp/206/#comments</comments>
		<pubDate>Sat, 19 Jul 2008 15:13:25 +0000</pubDate>
		<dc:creator>みやざわ</dc:creator>
				<category><![CDATA[カスタマイズ/ハック]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[テンプレート]]></category>

		<guid isPermaLink="false">https://sv69.xserver.jp/~fe01/wordpress4cms.net/206/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://WordPress.org" title="http://WordPress.org" class="autohyperlink" target="_blank">WordPress.org</a>内にあらたにテーマ/テンプレートの配布場所ができたようです。<br />
『<a href="http://wordpress.org/extend/themes/" target="_blank">Theme Directory</a>』</p>
<p>&#8212;<br />
以前からあるテーマ/テンプレートのダウンロードサイト↓<br />
『<a href="http://themes.wordpress.net/" target="_blank">Theme Viewer</a>』</p>
]]></content:encoded>
			<wfw:commentRss>http://wpcms.jp/206/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://wpcms.jp/206/" />
	</item>
	</channel>
</rss>

