自サイトの別記事をそのまま表示させる【WordPress】

作成済みの投稿記事や固定ページを別記事でそのまま表示したい場合があります。
そんな時に便利なのがショートコード。

プラグインはあまり使いたくないので、今回はfunction.phpにコードを追加します。

数行の追加のみで一度設定してしまえば、記事にショートコードを貼るだけで簡単に表示可能です。

スポンサーリンク

プラグインを使わず別記事を表示する方法

function.phpにコードを追加

まずは、子テーマのfunction.phpにコードを追加します。

※function.phpに記述する場合は、重複コードでエラー(WordPressが真っ白)になるためバックアップは必ずしておきましょう。

「外観」→「テーマの編集」→「テーマのための関数(function.php)」

追加するコード

//別記事挿入のショートコード
function text_insert($atts){
	extract(shortcode_atts(array("id"=>0),$atts));
	if(get_post($id)!=null)
		return wpautop(do_shortcode(get_post($id)->post_content));
}
add_shortcode("s-text","text_insert");

上のコードを

<?php
//追加するコード
?>

内に追加してください。(ない場合は <?php と ?> も追加)

記事にショートコードを入力

次に投稿記事、又は固定記事の表示したい箇所に次のコードを入力します。

[s-text id=591]

id=591の数字の部分は、postIDです。

挿入したい記事の編集ページのアドレス(URL)部分、post=〇〇の数字です。

固定ページで投稿記事どちらでも使用可能

表示結果

下のような記事の間に、

別の記事(id=591)を挿入したい場合、

挿入したい文章の間に[s-text id=591]を入力

このように表示されます。

エディタでは表示されずにの状態ですが、プレビューやサイトを見に行くとちゃんと表示されています。

補足:コードの解説

関数などの説明を覚え書きように記載(入力するショートコードは[s-text id=591])

function text_insert($atts){
	extract(shortcode_atts(array("id"=>0),$atts));
	if(get_post($id)!=null)
		return wpautop(do_shortcode(get_post($id)->post_content));
}
add_shortcode("s-text","text_insert");

・function 作成する関数名(引数){
処理
}

・shortcode_atts 第一引数でデフォルトの属性と値設定、第二引数は入力されたidの値(591)
・extract 新しい変数を作成(ここでは $id = 591)

if文

・idが空でない場合、指定idのコンテンツを返す
・wpautop wordpressの自動整形関数

add_shortcode関数

・add_shortcodeはショートコードタグを追加する関数
・引数”s-text”はショートコードとして呼び出す文字 [s-text id=591]のs-text
・”text_insert”は1行目で作成した関数を呼び出している

スポンサーリンク

ブログランキング・にほんブログ村へ

コメントの入力は終了しました。