WordPressで同じ情報を投稿記事や固定ページに貼り付けたいとき

Facebooktwitter

頻繁に更新する情報をサイト内の複数の箇所で表示させるとき、更新のたびに全部のページを編集するのは大変ですよね。
テキストウィジェットって方法もありますが、文中に紛れ込ませることはできません。

そこで、固定ページに書き込んだ内容をショートコードであちこちペタペタ貼り付ける方法を紹介します。
過去の記事でもこのショートコードを埋め込んだ部分は常に最新の情報が表示されます。
その時どきの記録を表示するには適してません。どのページを開けても最新のものを表示させる分には非常に有効です。

【手順】
(1)共通で表示させたい内容を固定ページで作る。
(2)functions.phpにショートコードを定義する。
(3)2で作ったショートコードを表示させたい別の固定ページや投稿に張り付ける。

【解説】

(1)、(3)の説明は特に必要ないと思います。
ショートコードでは(1)で作った固定ページのスラッグを指定しますので、使いやすいスラッグにしてください。

(2)のショートコートの定義

add_shortcode('getFixedPage', 'get_fixed_page');//ショートコード名の定義

//ここからショートコードの動作の定義
function get_fixed_page($atts) {
    extract(shortcode_atts(array(
        'pagename' => ''
    ), $atts));
 
    if ($pagename == '') {
       return '';
    }

    $page = get_page_by_path( $pagename  );

    $html = '';
    if( isset( $page ) ) {
        $html .= apply_filters( 'the_content', $page->post_content );
    }
    return $html;
}

これで、

[getFixedPage pagename=infomation]

を記事に挿入すると、”information”というスラッグを持つ固定ページの内容がそこに表示されます。

1行目の引数の左側がショートコード名になるので、好きな名前に変えても構いません。

(1)で作った固定ページはRSSやXML Sitemapなどで、クローラーが見つけてしまうかもしれません。
直接見られても特に問題なければいいですが、見られてほしくない場合はそれらに書き出されないようにしましょう。