[wp]header.phpでカスタムフィールドは取得できる

何を当たり前のことを、という話かもしれない。

活用シーン

カスタム投稿でアーカイブ記事を作成。記事には投稿者情報を記載するんだけど、投稿者はカスタムフィールドで管理する。該当のカスタムフィールドに入力があれば<head>に署名の<meta>を追加する、をしたい。

言い換えると、authorを導入にあたり、執筆者情報はwpの管理アカウントじゃなくてカスタムフィールドから引っ張ってくるということ。

結論

以下のような環境でやっていくとする。

カスタム投稿名著者名(テキスト)著者名の表示(真偽)
blogauthor_nameauthor_show
カスタムフィールドはSmart Custom Fieldsを使用するとする。

header.phpまたはそれにget_template_part()とかで<head>内に以下の内容を入れる。

<?php if(is_singular('blog') && SCF::get('author_show')): ?>
<meta name="author" content="<?php echo scf::get('author_name'); ?>">
<?php endif; ?>

おしまい。

該当の記事ページであること、表示が真であることを条件に挿入する。

ポイント

カスタムフィールドにおいてはheader.phpで直接拾えるので個別ページと同様の記述で済む。変数を渡す必要があればsingle.php→header.phpはグローバル変数を使うことになるんだけど、そういう手間が無いのでとても楽。

functions.php上で完結するならheader.phpに加筆する必要がなくある意味正攻法なんだけど、手間的に圧倒的にこっちのほうが楽。

著者の設定

SEO評価基準にどこまでのものがあるかは知らないけど記事の著者を登録したほうがいいよってことで、それは<meta>だから記述自体に難解さはない。

<meta name="author" content="megefeps">

他にもこんなのがある。

<link rel="author" href="https://blog.megefeps.info" title="MEGE's Factory">
<link rel="author" href="mailto:info@blog.megefeps.info">

プロフのURLを入れるとかmailto:で連絡先とか。併記していいのかは分からないけど。

<a rel="me" href="https://twitter.com/megefeps">megefeps</a>

リンク先との関連付けとか。

そんな感じで。

コメント

タイトルとURLをコピーしました