web-dev-qa-db-ja.com

著者メタタグ内の現在の投稿の著者名

現在の投稿の作者をmeta authorタグのコンテンツとして追加しようとしています。このメタをis_single条件でラップしてから試してみました。

<meta name="author" content="<?php get_the_author(); ?>" />

これを試しただけでなく:

<meta name="author" content="<?php the_author(); ?>" />

上記の両方のために、 Facebookデバッガ は以下のように答えた。

プロパティではなく名前を持つメタ :ページ上のメタタグが 'author'という名前で指定されました。これは、このオブジェクトタイプの設定済みプロパティと一致します。 meta name属性の代わりにmeta property属性で指定されていない限り、無視されます。


それから私は試してみました:

<meta property="article:author" content="<?php the_author(); ?>" />

これを試しただけでなく:

<meta property="article:author" content="<?php the_author(); ?>" />

上記の両方のために、 Facebookデバッガ は以下のように答えた。

パーサーの不一致メタデータ :このメタデータに対するパーサーの結果が入力メタデータと一致しませんでした。おそらく、これは予期しない方法でデータが順序付けられていること、単一の値のみを予期するプロパティに複数の値が指定されていること、または特定のプロパティのプロパティ値が一致しないことによって発生しました。解析結果に表示されなかった入力プロパティは次のとおりです。 'article:author'。


上記の4つのメタはすべてauthorタグに空白のコンテンツ(<meta name="author" content/>)を返すだけなので、間違っています。

3
AndrewL64

ループ内ではなく、フックを使用してfunctions.php経由で追加します(実際にheader.phpにループを追加する必要はありません)。

function add_author_meta() {

    if (is_single()){
        global $post;
        $author = get_the_author_meta('user_nicename', $post->post_author);
        echo "<meta name=\"author\" content=\"$author\">";
    }
}
add_action( 'wp_enqueue_scripts', 'add_author_meta' );
2
coopersita

これをheader.phpに追加してください。

<meta name="author" content="<?php the_author_meta('user_nicename', $post->post_author); ?>">
0
Harkály Gergő