• お世話になります。

    投稿ページの本文の冒頭にその投稿をしたユーザ名を
    自動挿入したいのですが、
    the_contentやget_the_contentなど、どのように加工したら良いのでしょうか?

    挿入したユーザ名をmeta=descriptionに表示させたいと思っております。

    よろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • 「自動挿入したい」のは、管理画面で投稿を編集しているときですか?

    「挿入したユーザ名をmeta=descriptionに表示させたい」はWordPressが表示する投稿ページのHTMLソースの head 部分に

    <meta name="description" content=“ユーザー名”>

    を入れたいのですか?

    トピック投稿者 crushyogi

    (@crushyogi)

    情報不足ですみません!

    あるユーザが記事を書いて公開した後です。

    ユーザのlast_nameが「チョコレート」だとして、記事本文の書き出しが「沖縄のお土産で有名なのが〜〜」とした場合、記事のhead部分のHTMLには
    <meta name="description" content=“チョコレート - 沖縄のお土産で有名なのが〜〜”>
    という風に自動でユーザのlast_nameさ挿入せたいと思っております。

    よろしくお願いします。

    下記の過去トピックがヒントになるかも。調べてみてください。
    [解決済み] 固定ページのmetaデータ(keywords、description)をページ毎に変更したい

    こんにちは、crushyogiさん。

    こんな感じでいかがでしょうか?
    ※未検証ですので動かないかもしれませんが。

    function single_mata_tag() {
        global $post;
    
        if ( !is_single() ) {
            return;
        }
    
        $content = wp_trim_words( $post->post_content, '140' );
        $name    = get_the_author_meta( 'last_name', $post->post_author );
    
        if ( ! empty( $name ) {
            $content = $name . ' - ' . $content;
        }
    
        return sprintf( '<meta name="description" content="%s">', wp_strip_all_tags( $content  ) );
    }
    add_action( 'wp_head', 'single_mata_tag' );

    KUCKLUさん、ありがとうございます。バリエーションでこういうのも。

    add_action( 'wp_head', ‘my_embed_meta_description', 90 );
    function my_embed_meta_description() {
      if ( is_single() ) {
        global $post;
        $user_obj = get_userdata( $post->post_author );
        $last_name = $user_obj->last_name;
        if ( empty( $last_name ) )
          $last_name = $user_obj->display_name;
        echo '<meta name="description" content="';
        echo sanitize_text_field( $last_name );
        echo ' - ';
        echo wp_html_excerpt( $post->post_content, 40 );
        echo '">';
      }
    }

    トピック投稿者 crushyogi

    (@crushyogi)

    KUCKLU様 gblsm様
    ありがとうございます!

    両コードをfunctions.phpに記述し試してみたのですが、
    KUCKLU様のコードでは
    if ( ! empty( $name ) {

    gblsm様のコードでは
    echo '<meta name="description" content="';
    にパースエラーが発生していまいます……。

    朝から色々と試行錯誤しているのでうが、まだ表示にいたっておりません。
    見る限りでは問題のないコードのように思えるのですが解決策はございますでしょうか?

    コピー&ペースト後にダブルクォートや他の記号が全角になっていませんか?

    トピック投稿者 crushyogi

    (@crushyogi)

    gblsm様
    全角ありました…眼鏡いりますね…。

    ありがとうございます!
    Twentytenにて表示させようとおもいますので、
    がんばってみます!

8件の返信を表示中 - 1 - 8件目 (全8件中)

トピック「the_contentなどの冒頭にユーザー名を自動挿入」には新たに返信することはできません。