カテゴリー [ WordPress関連 ] の投稿一覧

WordPressのテンプレートファイルでincludeするための色々な方法

2012-09-24

WordPressで制作するWebサイトは比較的ボリュームのあるサイトになる事が多い為、テンプレートファイル側に書く処理も膨大になりがちです。

そんな時、プログラマー的な発想をすると「共通化したい!」と強く思います。
(でも共通化をしすぎると逆にコードの見通しが悪くなるケースもあるので、バランスをとって程々に収めるのが重要です。)

今回はその方法を幾つかメモしておきます。


1.WordPressのテンプレートタグを利用する

WordPressではテンプレート階層を元にファイルを分割するのが前提となっていますので、下記のようなタグを使用するのがオーソドックスな方法です。

<?php
  get_header(); //header.phpを読み込む
  get_sidebar(); //sidebar.phpを読み込む
  get_footer(); //footer.phpを読み込む
?>

パラメーターを与える事で下記のような表記も可能です。
<?php
  get_sidebar('sub'); //sidebar-sub.phpを読み込む
?>


2.PHPのinclude文を利用する

こちらはPHPのinclude文を使用する方法です。
PHP的には全然特殊な方法ではありませんが、意外と気づかない方法だったりします。
パスの指定にはWordPressのグローバル定数「TEMPLATEPATH」を使用すると良いでしょう。
<?php
  include TEMPLATEPATH . '/sample_function.php';
  include TEMPLATEPATH . '/common/sample_function.php'; //下層ディレクトリも指定可能
?>
WordPressのテンプレートファイルは基本的に同一ディレクトリにフラットに配置しますが、この方法だと下層ディレクトリにファイルを配置できますね。

「テンプレートファイルは分ける必要があるけど記述する内容は同じ処理。でもfunction.phpの中に書くのもちょっと違う。」といった場合にもこれで共通化できます。

投稿本文を出力する方法の使い分けは結構難しい

2012-09-19

WordPressを利用する場合は、投稿本文にコンテンツを登録していくのが基本です。
しかし、この投稿本文。カスタマイズをしている場合には結構悩みどころです。

投稿本文出力における要件は、だいたい下記の組合せになってくると思います。

(1) 直感的に(Wordライクに)使用したい
(2) 改行は見たままに反映させたい
(3) HTMLタグを使用したい
(4) 投稿本文のデータを加工して出力したい
(5) ショートコードを使用したい
(6) JavaScriptも利用したい

普通のブログの場合には最低限(1)(2)が必要。
ブログの中でもHTMLタグも使う可能性がある場合には(1)(2)(3)が必要です。
でも(2)(3)だけで良い場合もあります。

ブログでは無い部分に投稿本文を使用する場合は、(1)(2)のケース、(3)のケース、(4)のケースなどがありますが、これは実際に更新する方の想定スキルに合わせないといけない部分でもあり、千差万別です。

これらの状況に加えて(5)(6)といったニーズが登場しますので、
どんな状況にも耐えうる方法というのは結構難しい課題です。


では下記に(1)~(6)の解決方法を記載しておきます。
(もちろんここに書いた方法以外にも解決手段はあります)

(1) 直感的に(Wordライクに)使用したい

これは投稿出力時に the_content 関数を利用していれば概ねOKです。
但し、WordPressの自動整形機能に従うという話ですので、色々制約もあります。
(整形されては困るものも整形されたりします)

(2) 改行は見たままに反映させたい

これは brBrbr というプラグインを利用し、the_content タグを使用すれば実現できます。

(3) HTMLタグを使用したい

the_content 関数を使用した状態でも可能ですが、自動整形機能によってうまく表示されないケースが出てきます。
その場合には $post->post_content 等によって取得したものを echo で出力すれば自動整形を免れます。

さて、ここからが問題。
$post->post_content を使用した瞬間に(1)や(2)が実現できなくなります。
(2)はPHPの nl2br 関数を利用すれば辛うじて実現できそうですが、普通HTMLタグは改行・インデントを入れて整形しますので、空行だらけの表示になってしまいます。でも改行しないと見辛くてメンテナンスできない、、、と。

(4) 投稿本文のデータを加工して出力したい

これも(3)と同様の方法でOKです。
$post->post_content で一旦変数に格納できますので、データ加工してから echo すれば良いです。

(5) ショートコードを使用したい

これは投稿出力時に the_content 関数を利用していれば概ねOKです。

(6) JavaScriptも利用したい

これも投稿出力時に the_content 関数を利用していれば概ねOKです。
これは(3)と同様の方法でOKです。$post->post_content で取得すれば自動整形されずにJavaScriptもそのまま表示できます。

但し、the_contentを使わないと困る。という場合もあります。
この場合、ショートコードやカスタムフィールドを利用するプラグインがありますので、これを利用しても良いです。
有名どころでは ContentEXHeadSpace などでしょうか。



さて、まとめに入ります。
投稿本文の記事出力には大きく the_content系と $post->post_content系がある、というのがわかります。
それぞれ「実現できること」が相反するので、サイトの構造や更新するユーザーに合わせて取捨選択する必要があります。
そうした上で「相反するけどどうしても必要な機能」をカスタマイズによって埋めていく。というのが現実的だと思います。

※文章書くだけで力尽きてしまい、画像無しの記事になってしまったので、後々追記致しますー
(追記前の記事を読んだ方。読みづらくて申し訳ないです!)

WordPressの投稿画面を使いやすくする方法

2012-09-11

WordPressの管理画面はバージョンアップの度に使いやすくなってきました。

でも一般人の感覚からすると、まだまだ使いやすいとはいえないもの。
クライアントへの納品時に管理画面をカスタマイズする場合もあるかと思いますが、使い勝手には個人的な趣味嗜好も影響するので、使いやすい管理画面というのは結構難しい問題です。

そこで今回は「カスタマイズ不要ですぐできる」管理画面の改善技を幾つかご紹介します。


1.投稿本文を広げる

右下の隅をドラッグすると投稿本文エリアが伸ばせます。
WordPressに限った話では無く、テキストエリアならこの技が使えます。
(但しブラウザによってはできません)


2.表示オプションで不要な項目を隠す

表示する項目の表示・非表示を切り替えることができます。
2カラムと1カラムの切り替えもここでできます。
Web制作会社さんがカスタマイズしてる場合、必須項目を隠さないようにして下さいね。


3.ボックスの位置を変更する

「公開」「カテゴリー」などのボックスはドラッグすれば位置が変更できます。
自分が編集する流れに合わせて位置を変更しておくだけでもストレスが軽減されます。



この並び、なんかしっくりこないんだよなー、という方。是非お試しください。