タイトル・keywords・descriptionをACFで

★考えた仕様
タイトルは、入力があれば「値|ブログタイトル」、入力がなければ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;?>