WP4.9.1へアップグレード

ブログをアップグレードするのを忘れていました..
そして久しぶりの更新(;´∀`)

WP4.7から一気にWP4.9へアップグレードさせたので少々不安だったのですが、特に問題なく動作してます。

PHPバージョンも7に切替

レンタルサーバーがPHP7をリリースしているので、5系から7.1に切替ました。

PHP7は、以前のバージョンに比べパフォーマンスがかなり高いそうでWP高速化に期待が持てます。※但し古いバージョンのPHPだと動かなくなるのでご注意ください。

あとはMySQLデータベース5.0→5.5への移行!…なんですが、別サイトでエラーが出たので腰が重い。もう少し時間に余裕があるときにやろうかと思います。

投稿されたタクソノミーターム名を表示する

記事に投稿されているカスタム分類(タクソノミーターム)だけを表示するタグ。

taxonomyは表示したいカスタム分類のタクソノミー名を記入すること

リンク付きで表示

■カンマで表示

<?php echo get_the_term_list( $post->ID, 'taxonomy', '分類: ', ', ', '' ); ?>

■ulリストで表示

<?php echo get_the_term_list($post->ID, 'taxonomy', '<ul ><li>','</li><li>','</li></ul>');  ?>

続きを読む 投稿されたタクソノミーターム名を表示する

WordPress3.9.1へアップグレードしてみた

wp3.9.1

3.9へのアップグレードを忘れてて、気づいたら3.9.1がでていた(笑
早いよWordpress!

3.9.1では34個のバグが修正されているようです。

で、とくに問題なくアップグレードが完了。
管理画面は3.8とほぼ同じ。

変わったのはメディア編集部分でしょうか。

続きを読む WordPress3.9.1へアップグレードしてみた

フィールド内容の有無で条件分岐(AdvancedCustomFields)

AdvancedCustomFieldsというプラグインを使用し、タクソノミーのアーカイブページで値があるかないかで条件分岐しようしたらハマッたのでメモ。

get_field(‘フィールド名’ ,$post_id)で条件分岐

カスタムタクソノミー(ターム)で、作成したフィールドタイプに記入がある場合は表示させ、記入がない場合は別の内容を表示する。

※動作確認はタクソノミーテンプレート(taxonomy.php)のみ

<?php
$term_id = get_queried_object()->term_id;
$post_id = 'タクソノミー名_'.$term_id;
?>
<!--条件分岐ココから-->
<?php if( get_field('フィールド名' ,$post_id)): ?>
<?php the_field('フィールド名' ,$post_id); ?>
<?php else: ?>
<p>フィールドに内容がない場合はこちらを表示</p>
<?php endif; ?>
<!--条件分岐ココまで-->

ちなみに、get_fieldは以下の記述では動作しませんでした。

×get_field('フィールド名')
×get_field('フィールド名',$post->ID)

はじめ$post_idを、$post->IDとしていたため表示されずかなりハマりました…(笑
the_fieldも同様に「$post_id」で動作。

リンクなしtag(タグ名)を表示

WordPressのタグを表示するときの一般的なテンプレートタグ(タグ+リンクで表示)

<?php the_tags('前', '区切り文字', '後'); ?>

でも、リンクは出力せずタグ名だけ表示させたい場合もある。
そんな時は以下を使用。

get_the_tagsでタグ名だけ出力

<?php
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo $tag->name . ' ';
}
}
?>

テンプレートタグ/get the tags – WordPress Codex 日本語版

見た目をちょっと変えてみる

タグスラッグをclass(もしくはid)に割り当ててデザインを変える。

<?php
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
echo '<span class="' .$tag->slug . '">' . $tag->name . ' </span>';
}
}
?>

WPテーマのスタイルシート、ディレクトリ等のURL取得

WordPressの推奨タグが微妙に変わっていたのに・・・(とくにサイト情報まわり)全然気付いていなかったのでメモ。

ホームURL

  • bloginfo( ‘url’ )↓
  • echo home_url() [推奨]

フィードURL

  • bloginfo(‘feed_url’)↓
  • get_feed_link( ‘feed’ ) [推奨]

テーマディレクトリのURL

  • bloginfo( ‘template_directory’ )↓
  • bloginfo( ‘template_url’ )↓
  • get_template_directory_uri() [推奨]

テーマ・スタイルシートディレクトリのURL

  • bloginfo( ‘stylesheet_directory’ )↓
  • get_stylesheet_directory_uri() [推奨]

テーマ・スタイルシートのURL

  • bloginfo( ‘stylesheet_url’ )
  • get_stylesheet_uri() [推奨]

■URIを出力する場合

<?php echo get_stylesheet_directory_uri(); ?>

関数リファレンス/get stylesheet directory uri – WordPress Codex 日本語版

WPライブプレビューでトップ以外が表示されなかった件

WordPressはインストール(アップロード)したテーマを有効化せずとも、「ライブプレビュー」で確認することができます。

いつもの通り、新しいオリジナルテーマを確認しようと、「外観」→「テーマ」→「ライブプレビュー」で確認、ここまでは普通にトップページが表示されるんですが、投稿ページやカテゴリページなど別ページを確認しようとするとなぜか現在のテーマ(有効化されてるテーマ)が表示される。

しかし、WPデフォルトテーマ「twentyeleven」などをライブプレビューで確認すると、下層ページもちゃんとtwentyelevenのテーマで表示される。

!?

自作したテーマに問題があることはわかったけど、バージョンアップしてなんか仕様変わった?functions.phpか????

と、あれこれ悩むこと数時間・・・

footer.phpに

<?php wp_footer(); ?>

を入れ忘れていたことが原因だった。

(´;ω;`)・・・

wp_head()は</head>直前に、wp_footer()は</body>直前にいれることを忘れないように!

WP3.8でtaxonomyテンプレートが優先されない?

WordPressには”カスタム分類”(カテゴリーに似ているけどより自由な形態)というのが設定できますが、タクソノミー別、ターム別にテンプレートを適用させたい時は、以下のテンプレートファイル名で用意すれば可能になります。

■読み込みの優先順位

  1. taxonomy-{taxonomy}-{term}.php
  2. taxonomy-{taxonomy}.php
  3. taxonomy.php
  4. archive.php
  5. index.php

※カスタム分類の設定にはfunctions.phpに直接記述するか、プラグインで設定する方法があります。
簡単な解説はコチラ→カスタム分類 – WordPress Codex 日本語版

通常使いならなんの問題もないんですが・・・

タクソノミー+タグをあわせて表示させていたページが、おかしなことになっていることに気づきました。読み込むテンプレートがデフォルト直行しているご様子(–;)?? 続きを読む WP3.8でtaxonomyテンプレートが優先されない?