サポート » プラグイン » パブリサイズ共有で定型文を挿入

  • Jetpackのパブリサイズ共有機能で、SNSに最新記事を流し込む際に定型文を設定したいと奮闘していましたが、思ったようにいかず困っています。

    さんざん試した結果、functions.phpに以下を記述した状態です。

    // パブリサイズ共有定型文
    function change_publicize_save_meta( $submit_post, $post_id, $service_name, $connection ){
    global $post; // カテゴリの配列を取得
    $post_id = $post -> ID;
    $cat_list = ”; // カテゴリー一覧を取得
    foreach( ( get_the_category( $post_id ) ) as $cat ) {
    $cat_list .= ‘ #’ . $cat -> cat_neme;
    }

    $title = get_the_title( $post_id ); // 記事タイトルを取得
    $author = get_the_author( $post_id ); // 記事投稿者を取得
    if ( !$publicize_custom_message ) { // パブリサイズ共有が有効な場合
    $publicize_custom_message = sprintf( “スタッフ【%s】が、【%s】を投稿しました。\nよかったら見に来てください!\n#○○○ #▲▲▲ #×××%s\n”, $author, $title , $cat_list );
    update_post_meta( $post_id, ‘_wpas_mess’, $publicize_custom_message ); // カスタムメッセージを適用
    }
    }
    add_action( ‘publicize_save_meta’, ‘change_publicize_save_meta’, 10, 4 );

    記事投稿者と、カテゴリーの親子が空白になってしまいます。
    以下が、SNSでシェアされたときに出力されたものです。
    スタッフ【】が、【ここにタイトルは入りました】を投稿しました。
    よかったら見に来てください!
    #バックパッカー #旅 #旅行 # #

    おかしな部分が分かれば、教えていただけると助かります。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • RICK

    (@rickaddison7634)

    $cat_list .= ‘ #’ . $cat -> cat_neme;
    cat_nemecat_nameが正解だと思います。

    get_the_authorはループ上で使うものなので、
    どちらかといえばget_the_modified_authorの方が近いかもしれません。

    get_the_author
    get_the_modified_author

    • この返信は8 ヶ月、 1 週前に  RICK さんが編集しました。

    返信ありがとうございます!

    返信を読んで、漠然とですが解決の糸口が見えたような気がして試していたら、ようやく目的の形にたどり着きました。

    結果としては、

    if ( ! emptyで囲んでやることで解決しました。

    $cats = get_the_category( $post_id );
    if ( ! empty( $cats ) ) {
    	$cat_list = '';
    	foreach( $cats as $cat ) {
    		$cat_list .= ' #' . $cat -> name;
    	}
    }

    ②投稿者IDから表示名を引っ張ることで達成しました。

    $author = get_userdata( $post -> post_author );
    $author_name = $author -> display_name;

    返信でループの外であるという認識がはっきりしたことで、うまくいきました。
    本当にありがとうございます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「パブリサイズ共有で定型文を挿入」には新たに返信することはできません。