ショートコード – idからページへのリンクを表示

ワードプレス関数ファイルPHPショートコード関数

トップページなどから、固定ページへのリンクボタン「詳しく見る」などをビジュアルエディタに書いて表示している場合。

ページスラッグを変えると、リンクURLを書き換えなくてはならず面倒。

ナビゲーションメニューみたいに自動で書き換えてほしい。

ソース

/* ---------- 固定ページ、シングルへのリンク - idから ---------- */
function id_link( $atts ){
	extract( shortcode_atts( array(
		'id'		=> '',
		'wrapper'	=> '',
		'class'		=> '',
		'anker'		=> ''
	), $atts ) );
	if( $id ){
		$link = get_permalink( $id );
		if( $wrapper ){
			$wrapper = $wrapper;
		}else{
			$wrapper = 'p';
		}
		if( $class ){
			$class = ' ' . $class;
		}else{
			$class = ' btn btn-m';
		}
		if( $anker ){
			$anker = $anker;
		}else{
			$anker = '詳しく見る';
		}
		return '<' . $wrapper . ' class="id-link' . $class . '"><a href="' . $link . '">' . $anker . '</a></' . $wrapper . '>';
	}else{
		return false;
	}
}
add_shortcode( 'id_link', 'id_link' );

・idを指定しなければ何もしない。

・ラッパーは「p」、指定すればソレに。

・アンカーテキストを指定しない場合は「詳しく見る」

・CSSクラスはよく使うもの。明示すればソレに。

呼び出し

「お問い合わせ」にリンク

「id_link id=”73″」

[id_link id=”73″]

「お見積り」にリンク、アンカーテキストを「お見積りはお気軽に」、CSSクラスを「btn btn-xl」に

「id_link id=”77″ anker=”お見積りはお気軽に” class=”btn btn-xl”」

[id_link id=”77″ anker=”お見積りはお気軽に” class=”btn btn-xl”]

「トップ」にリンク、アンカーテキストを「トップに戻る」、ラッパーを「span」に、CSSクラスを「link-underline」に

「id_link id=”107″ anker=”トップに戻る” wrapper=”span” class=”link-underline”」

そのほかの記事は[id_link id=”107″ anker=”トップに戻る” wrapper=”span” class=”link-underline”]をご覧ください。

 

これで、スラッグを変更するたびにあちこち直さなくて済む。