インフラエンジニアを募集中です。詳細はこちらWordpressで投稿の本文中に別投稿タイプの記事の情報をショートコードで埋め込むWordPressyamazaki2019.09.02こんにちわ山崎です。今回はショートコードを使って記事に他の投稿タイプの情報を埋め込むやり方をご紹介します。お知らせの中の本文中に同じくCMSで作成している別投稿タイプの内部リンクを貼りたいといったことがたまにあると思います。それを埋め込むのにHTML手打ちではなく決められたフォーマットで記事のIDを埋め込むだけでモジュールを作れたらいいと思い、開発に至りました。今回は、飲食店のブログの中にカスタム投稿タイプの店舗情報を埋め込むという程でサンプルを作りました。投稿タイプのregister_post_type関数で定義します。テーマ内のfunctions.phpに以下を追加してください。'店舗情報が見つかりませんでした。'ゴミ箱内にが店舗情報見つかりませんでした。'create_post_type');このあたりの詳しい説明は省略します。次に店舗情報の中に詳しい情報が埋め込めるよう、カスタムフィールドを定義していきます。Field」というプラグインをインストールして有効化してください。有効化が完了したら、カスタムフィールドの新規作成から以下のフィールドを作成します。テキストエリアそしてこのフィールドを表示する条件のところを投稿タイプ、等しい、店舗情報にしてください。ここまでで店舗情報が作成できるようになったので、適当に入力して店舗情報の投稿を1つ作ってください。通常の投稿タイプから店舗情報を呼び出す。ショートコードの作成WordPressでショートコードを追加するには、add_shortcodeという関数を使用します。'コールバック関数');第一引数にショートコードを判別するためのタグの文字列を入れます。[some_shortcode]でショートコードを呼び出したい場合、add_shortcodeの第一引数にsome_shortcodeと入れます。第ニ引数でコールバック関数名の文字列を指定します。ショートコードで呼び出すコールバック関数を定義していきます。'get_store_info');コールバックの第一引数にはショートコードで使用している属性の配列が入ってきます。上記のコードの場合、$attr['属性名']と記述すると、ショートコードの属性値が取れます。//以下略}ショートコードのstore_idという属性に店舗情報のIDを埋め込み、get_postで対象IDの店舗情報を取得します。念のため、$storeがnullだった場合や、別の投稿タイプの記事だった場合も考慮して条件分岐をしています。$html;あとは取得した投稿を元にHTMLを作ってそれを返す処理をしてあげればOKです。ブログを投稿(店舗情報のIDが10の場合)いつもOOをご利用いただきありがとうございます。この度OO月OO日午前OO時に新店舗となるOO店をオープンすることになりました。店舗情報をブログに組み込むことができました!今回省略しましたが、追加したCSSは以下になります。14px;}あまり使う機会は少ないかもしれませんが、とても簡単なので機会があったら試してみてください。この記事を共有するシェアTweetこの記事を読んだ人にオススメ【WordPress】WordPress5.3での変更点まとめWordPresskoya2019.11.20はてブ【WordPress】アップロードしたメディア、ファイルにアクセス制限をかけて非公開にしたい。WordPressyamashita2019.11.13はてブ【WordPress】is_xxxx()という関数は用法用量を守って使いましょう。Gutenberg」で簡単にテーマを...WordPresskoya2019.10.04はてブバシャログ。Web制作スタッフによるブログです。「現場で使えるテクニック」をモットーに、Web制作全般についてお届けします。