Enter the Void (2009)
Enter the Void (2009) > WordPress > WordPressのショートコード:記事のリンクを表示するショートコード

WordPressのショートコード:記事のリンクを表示するショートコード

WordPressの記事内で使える、投稿記事のリンクを表示させるショートコードを作成したので、メモします。

ショートコードで引数・パラメタを使って記事を指定してそのリンクを表示できます。
IDで指定するものと記事のスラッグで表示する2パターンを作成しました。

記事IDと記事のスラッグを指定する2パターンのショートコード

記事IDの指定のショートコード

[article_link_id id="1,2,3"]

記事スラッグの指定のショートコード

[article_link_slug slug="aaa,bbbb,cc"]

次にご紹介するのコードをfunctions.phpに追記後、記事内にショートコード貼り付けて使用可能です。

記事リンクを記事IDで指定して表示するショートコード

/*===========================================================
* ショートコード 記事リンク(記事IDで指定) [article_link_id id="1,2,3"]
===========================================================*/
function article_link_id($atts) {
    extract(shortcode_atts(array(
        'id' => 0,
    ), $atts));

	if( isset( $id )) {
    	$id = explode( ',', $id );
	}
	foreach($id as $id_item){
		$post = get_post($id_item);
		if(!$post ) return false;
		$link     = get_permalink($post->ID);
		$categories = get_the_category( $post->ID );
		$category_name = $categories[0]->name;
		
		if($img_src ==""){
			$img_src =  get_bloginfo('template_url')."/img/no_img.png";
		}
		$str = <<<EOS
<div class="entry_box">
<a href="{$link}" class="clearfix">
<div class="txt"><div class="title">{$post->post_title}</div>
<div class="category">{$category_name}</div></div>
</a></div><!-- /.entry_box -->
EOS;
	$str2 .= $str;
	}
	
	return $str2;
	
}
add_shortcode('article_link_id', 'article_link_id');

記事リンクを記事スラッグで指定して表示するショートコード

/*===========================================================
* ショートコード 記事リンク(スラッグで指定)[article_link_slug slug="aaa,bbbb,cc"]
===========================================================*/
function article_link_slug($atts) {
    extract(shortcode_atts(array(
        'slug' => 0,
    ), $atts));
 	
	if( isset( $slug )) {
    	$slug = explode( ',', $slug );
	}
	
	foreach($slug as $id_item){
		$s_id ="";
		$id   ="";
		$post_id=get_page_by_path($id_item,OBJECT,"post")->ID;
		$page_id=get_page_by_path($id_item,OBJECT,"page")->ID;
		$s_id =  $post_id ? $post_id : $page_id;
		//id見つからなかったら、$idを入れる
		$id   =  $s_id ? $s_id : $id;
		$post = get_post($id);
		if(!$post ) return false;
		$link     = get_permalink($post->ID);
		$categories = get_the_category( $post->ID );
		$category_name = $categories[0]->name;
		
		$str = <<<EOS
<div class="entry_box">
<a href="{$link}" class="clearfix">
<div class="txt"><div class="title">{$post->post_title}</div>
<div class="category">{$category_name}</div></div>
</a></div><!-- /.entry_box -->
EOS;
	$str2 .= $str;
	}
	
	return $str2;
	
}
add_shortcode('article_link_slug', 'article_link_slug');
こちらの記事もよく読まれています
  • WordPressのショートコード:よく使うショートコード
    1,682 views
  • WordPressのショートコードをPHPのテンプレートファイル内で使用するには
    827 views
  • WordPressのショートコード:テーマ内のPHPファイルを呼び出すショートコード
    870 views
  • WordPressのショートコードを記事タイトルやウィジェットの中でも使用する
    1,708 views