WordPressでは、
<meta name="generator" content="WordPress 3.8.1" />
といったメタ要素が自動的に埋め込まれます。
このコードを、functions.phpに追加することで、
generatorの出力で使われているフィルタを使って、
シングルページ表示した場合に、カスタムフィールドに、descriptionまたは、keywordというフィールドがある場合に、その値を、
generatorのメタタグの代わりに、descriptionとkeywordを埋めこみます。
カスタムフィールドに該当するフィールドがない時は、generatorを表示します
<?php
function nobita_generator( $gen, $type ) {
global $post;
$result= '';
if ( is_singular( ) ) {
$description= get_post_meta( $post->ID, 'description', true );
if ( ! empty( $description ) ) {
$result .= '<meta name="description" content="'. esc_attr( $description ). '" />';
}
$keyword= get_post_meta( $post->ID, 'keyword', true );
if ( ! empty( $keyword ) ) {
$result .= '<meta name="keywords" content="'. esc_attr( $keyword ). '" />';
}
if ( !empty( $result ) ) {
return $result;
}
}
return $gen;
}
add_filter( 'get_the_generator_xhtml', 'nobita_generator', 10, 2 );
?>
以下のようなソースが出力されます。
<meta name="description" content="hello world" /><meta name="keywords" content="hello, world" />