カスタムフィールドを活用することで様々な表現が可能になります。「query posts」タグを使うことでWordPressループ内において、表示される投稿を変更できますが、今回はカスタムフィールド情報の取得についてのメモ。
query_posts('meta_key=ABC&meta_value=DEF');
ここでは、キーABCのDEFの値を取得。表示したい内容を取得します。
また、「get_post_meta」関数を使うことで、どの投稿の、どのカスタムフィールドの値を取得するか指定します。
get_post_meta($post_id, $key, $single); ?>
・「$post_id」では「$post->ID」することで記事IDの取得。
・「$key」はカスタムフィールドのキー
・「$single」はtrueもしくはfalseを指定し、trueであった場合、文字列として返します。falseの場合には配列を返します。trueにすることで、例えばURLやイメージURL情報も取得でき、query_postsの指定によって表現させることが可能でした。
投稿やページの特定の記事でサイドバーを変化させるためには、「sidebar.php」ファイルで「if」文で分岐することで実装可能です。
「sidebar.php」ファイルを複数用意してget_sidebar()で呼び出す方法では投稿全体やページ全体で違う内容を表示させることは可能ですが、これでは特定の記事で変化させることはできません。
◆「sidebar.php」ファイル-「if」文による分岐(pageに対して)
if(is_page(ID)){
IDで指定したページに表示させたい内容;
}else{
それ以外のページ全体で表示させる内容;
}
また、複数のページで様々な内容のサイドバーを表示させたい場合には、「else if」でページIDの指定、表示させたい内容を書けば実装できます。
投稿で実装するためには上記の「is_page」を「is_single」に変更し、投稿のIDを指定します。
また、「sidebar.php」内で書かなくても、複数のsidebar.phpを用意して、「page.php」や「single.php」内で「if」文による条件分岐でインクルードする「sidebar.php」を指定すれば実装可能です。
リストタグを回り込みして横並びのメニューを作っていたときにブラウザごとで表示が異なったのでメモメモφ(.. )
IE7以降や、Firefox・Chrome・Sleipnir・Safari・Operaでは問題なかったのですが、IE6以下では、回り込みすらせず、親要素の幅まで広がってしまった。
横並びにしたいブロック要素の幅を固定にすれば問題は解決できるのですが、今回は使う人によってテキストの長さが変わるという状況であったため、幅は固定せずに実装したかった。
そこで<li>タグのdisplayプロパティにinline-blockを指定することで、テキストに応じた横幅の横並びメニューがIE6でも問題なく表示することができました。
WP2.6以降、自動で投稿のリビジョン(投稿履歴)を保存する機能が備わったことにより、記事の状態を以前の状態に戻すことが用意になりましたね。
しかし、バックアップとして活用できる反面、サーバー容量をその分必要とします。
不必要になったリビジョンを削除すればその分容量の節約にもなるかと思います。
そんな時に活躍するのがリビジョンを一括で削除できるプラグイン【Delete-Revision】。
●導入方法・使い方
- http://wordpress.org/extend/plugins/delete-revision/よりプラグインをダウンロードし解凍したのち、・・・/wp-content/plugins/にアップロード。
- 管理画面にログインして有効化します。
- 【設定】より【Delete-Revision】を選択し、【Check Redundant Revision】をクリック。
- 【Yes,I would like to delete …】をクリックすると全てのリビジョンが削除されます。
※導入後は【Delete-Revision】の画面での操作はたった2回のクリックのみ。非常に簡単です。
お気に入りのテーマを見つけても、ウィジェットに対応していないために使用することを諦めてしまうこともありますが、そんな場合でもちょっとしたカスタマイズでウィジェット対応にすることができます。
▼ウィジェット対応にする手順
- 【sidebar.php】を開き、下記ソースを追加。
- 【functions.php】を作成し目的のテーマにアップロード。
- 【functions.php】に下記ソースを追加。
<?php if ( !function_exists(’dynamic_sidebar’) || !dynamic_sidebar() ) : ?> <?php endif; ?>
<?php
if ( function_exists(’register_sidebar’) )
register_sidebar();
?>
以上でウィジェット対応となります。
この状態で表示させるとサイドバーのタイトルがh2で記述されています。
無駄なリスト表示を無くし、タイトルを変更するためには【functions.php】に下記を変更します。
<?php
if ( function_exists(’register_sidebar’) )
register_sidebar(array(
‘before_widget’ => ”,
‘after_widget’ => ”,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’,
));
?>
<h3>と記述した部分がサイドバーのタイトルとなります。
