CATEGORIES:PHP WORDPRESS
タイトルのみのシンプルな内部ブログカード

記事内の説明で過去記事を紹介する場合にブログカードは便利だが、自分のサイト内リンクなので極力シンプルにしたい。サムネールのない記事も多いし本文抜粋も不要。タイトルだけでいい。ブログカードと言うよりは単なるリンクだな。こんな感じで。

普通にリンクを貼ったほうが早いか。でも統一したいので。これを設定すると記事作成時に「ショートコード」を選択し以下の通りURLを入力すると内部リンクが表示されるようになる。

[in_link url="投稿記事のURL"]

get_the_excerpt()だと$postに格納されている抜粋を取得してしまうので、記事IDを指定して取得したい場合はltl_get_the_excerptを使う。function.php内に以下を記載。ショートカット名とか表示用のHTMLとスタイルシートはお好みで。気分で日々レイアウトとか変えてしまう。リンクアイコンはアイコンフォントFont Awesomeを使っている。

// 記事IDを指定して抜粋文を取得する
function ltl_get_the_excerpt($post_id){
  global $post;
  $post_bu = $post;
  $post = get_post($post_id);
  setup_postdata($post_id);
  $post = $post_bu;
  return $output;
}

function show_Linkcard($atts) {
	extract(shortcode_atts(array(
		'url'=>"",
		'title'=>"",
	),$atts));

	$id = url_to_postid($url);//URLから投稿IDを取得


	//タイトルを取得
	if(empty($title)){
		$title = esc_html(get_the_title($id));
	}

	$in_link .='
<div class="in_link">//ここは好みの表示用HTMLを書く
  <a href="'. $url .'">
      <div class="in_link-content">
      <span><i class="fas fa-link"></i> RELATED </span>
          <span> 「'. $title .'」 </span>      
          </div>
      <div class="clear"></div>
  </a>
</div>';

	return $in_link;
}

add_shortcode("in_link", "show_Linkcard");

NOTICES

  • 記事内容は実装させたものがほとんどですが自己責任で参考にしてください。

TO HEADER