ウェブ、ショウジン

WordPressで共通化した独自パーツをテンプレートファイルに読み込む

2011-8-3
Category
WordPress

header.phpとかをget_header()とかで読み込むのではなくて、もっと固有のというか、自分で作った独自テーマで必要になった「共通化」しておきたいパーツを読み込む場合。
詳しくはテンプレート入門 – WordPress Codex 日本語版

ふつうにincludeするんで、とくに「おぉ!」とかではないですが、WordPressでは初めてやったことなので一応メモ。

たとえば、ソーシャルボタン(Twitterとか、はてなブックマークとかFacebookのいいねボタンとか)をひとまとめにしておいて、これを共通化して各テンプレートファイルで読み込んでみる。

以下のような内容のファイルを作ってテンプレートディレクトリ直下に置いて

テーマディレクトリ/social_btn.php

(?phpタグは不要)

<!-- SOCIAL BUTTON -->
<ul class="btn_social">
	<li>
		<script type="text/javascript" src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="<?php the_permalink(); ?>" data-text="RT @showzine :<?php the_title(); ?>" data-lang="en" data-count="none">Tweet</a>
	</li>
<li><a href="<?php the_permalink();?>" class="hatena-bookmark-button" data-hatena-bookmark-layout="standard" title="このエントリーをはてなブックマークに追加"><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a><script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script></li>
	<li><g:plusone href="<?php the_permalink() ?>" size="medium"></g:plusone></li>
	<li class="fb"><script type="text/javascript" src="http://connect.facebook.net/ja_JP/all.js#appId=122766974482217&amp;xfbml=1"></script><fb:like href="<?php the_permalink();?>" send="false" layout="button_count" show_faces="true"></fb:like></li>
</ul>
<!-- // SOCIAL BUTTON -->

読み込みたいテンプレートファイル側には以下を記述。

<?php include(TEMPLATEPATH.'/social_btn.php'); ?>

TEMPLATEPATHが、そのテーマファイルのルートディレクトリを指すので、該当のテンプレートのパスは「/」始まりで指定。

この記述をしたテンプレートファイルで、前述の「social_btn.php」を読み込んでフロント側に出力することができる。

また、このincludeファイルの中でWordPressの条件文を使うことももちろん出来るので、以下のようなincludeファイルを用意して各テンプレートで読み込むことも可能。

カテゴリー、個別ページではカテゴリー名は非表示。タグのページではタグ名を非表示にして、投稿日時はどの場合でも表示という例だと

<ul class="postinfo">

	<?php if(is_page() || is_category()): ?>
	<?php else : ?>
		<li><span>Category: </span><?php the_category(', '); ?></li>
	<?php endif; ?>

	<?php if(is_tag()): ?>
	<?php else : ?>
		<?php $tags_list = get_the_tag_list( '', ', ' ); if ( $tags_list ): ?>
			<li><?php printf( __( '<span>Tagged:</span> %2$s'), 'entry-utility-prep entry-utility-prep-tag-links', $tags_list ); ?></li>
		<?php endif; ?>
	<?php endif; ?>

	<li class="date"><?php the_time('Y年n月j日 H時i分'); ?></li>
</ul>

こんな感じ。WordPressの「◯◯じゃない」時(否定)の構文がわからなかったので、なんかスマートじゃないけど。

Categories

Tag Cloud

AdMob Android Apache centos CodeIgniter EC-CUBE facebookアプリ facebookページ feed Firefox Flash google googleanalytics htaccess iPad iPhone JavaScript lamp mobile nginx ogp pear php plugin rollover rss sendmail setting smarty ssh Titanium Mobile Titanium Studio tutorial ubuntu vim VirtualBox vmware vps Windows WordPress xampp youtube さくらインターネット アクセス解析 カスタム投稿