JetPackのパブリサイズ共有でカテゴリとタグを#(ハッシュタグ値)として表示する
以前の記事でカテゴリを取得してハッシュタグ値として表示する方法はわかって実装していたけど、この辺りってJetPackのご機嫌でかなり左右される。
ただ、やっぱり記事にタグをつけてそれも表示したいというのが当初の目的だったので、それを実現出来たので実装したコードを乗せておく。
あとはURLを短縮化したいんだけど、その辺りってやっぱりJetPackの仕様とかにも兼がね影響するね。
タグも表示できたコードを乗せておく。
子テーマのfunction.phpか外部化してオブジェクトとして呼び出してあげた方が更新やメンテナンス性はいいかも。
この辺りはコードの管理で人の好き好きなんで、自分の管理しているGitで適応出来る様にするのが良いんだろうな。
/** パブリサイズ共有の文言を変更 */ function change_publicize_save_meta( $submit_post, $post_id, $service_name, $connection ){ /*カテゴリの配列を取得*/ global $post; $post_id = $post->ID; $posttags = get_the_tags(); if ($posttags) { foreach($posttags as $tag) { $tags_neme = $tag->name; } } $cat = get_the_category(); /*先頭のカテゴリの名前を取得*/ $cat_name = $cat[0]->name; /*記事タイトルを取得*/ $title = get_the_title($post_id); /*パブリサイズ共有が有効な場合*/ if ( !$publicize_custom_message ) { /*カスタムメッセージを編集*/ $publicize_custom_message = sprintf( "%sを投稿しました。\nよかったら見に来てください!\n #%s #%s \n",$title ,$tags_neme ,$cat_name ); /*カスタムメッセージを適用*/ update_post_meta( $post_id, '_wpas_mess', $publicize_custom_message ); } } add_action( 'publicize_save_meta', 'change_publicize_save_meta', 10, 4 );
カテゴリはメインに設定している一つだけ、タグは始めに入力したものが表示されている。
本当は、設定したタグを複数自動で入れた方が良いのかもしれないけど無駄に長くなるのもどうかと思うので、一つづつってのが最低限の要件を満たしている内容なのかもしれない。
年末だから、しかかりで放置していた自分のサイトのメンテもかねて実装した。
あ~一つ注意点として、投稿自体一旦公開する前に下書き保存してないとDBにそのメタ情報が保存されないので、必ずカテゴリとタグを設定したら、その記事は下書き保存しておきましょう。
そうしないと、ハッシュタグとしてパブリサイズ共有には表示されない。
公開前のチェックとしてここを見ると良いかも
予約投稿に対応を出来ていなかったので、投稿のIDを取得してタグとカテゴリを取得してパブリサイズ共有に追加出来る様にしました。
2017年12月28日