★考えた仕様
タイトルは、入力があれば「値|ブログタイトル」、入力がなければWP標準のタイトルを表示。
キーワードは、入力がなければトップページ用に設定したキーワードを表示。
ディスクリプションは、入力がなければ、本文の100文字を表示、それもなければトップページ用に設定したものを表示。
★ACFの設定
タイトル:my_title(1行テキスト)
メタキーワード:my_keywords(1行テキスト)
メタディスクリプション:my_description(1行テキスト)
post、pageなどすべての投稿タイプで利用。
(小技:post以外 or post で表示、と設定しています)
★設定の「表示設定」で、フロントページの表示に固定ページを使っている場合
以下のようにしておくと便利かもしれません。
functions.php に
define(“FRONT”, フロントページのID);
と、書いておく。
下記の例でも使っています。
<?php if(get_field('my_title')):?> <title><?php the_field('my_title');?> | <?php bloginfo('name');?></title> <?php else:?> <title><?php wp_title( '|', true, 'right' ); ?></title> <?php endif;?> <?php if(get_field('my_keywords')):?> <meta name="keywords" content="<?php the_field('my_keywords');?>" /> <?php else:?> <meta name="keywords" content="<?php the_field('my_keywords’,FRONT);?>" /> <?php endif;?> <?php if(get_field('my_description')):?> <meta name="description" content="<?php the_field('my_description');?>" /> <?php elseif(!empty($post->post_content)):?> <meta name="description" content="<?php $exc = esc_attr(strip_tags($post->post_content)); $exc = preg_replace("/[\r\n]/", " ", $exc); $exc = mb_strimwidth($exc, 0, 100, "..."); echo $exc;?>" /> <?php else:?> <meta name="description" content="<?php the_field('my_description',FRONT);?>" /> <?php endif;?>