デスク周り

WordPressのショートコードについて

WordPressのショートコードとは、あらかじめ用意されたパーツをウェブサイト中で使えるようにするためのWordPress独自の仕組みです。ショートコードはいくつでも作成でき、どこからでも呼び出すことができます。呼び出し時にはブラケット(「[」と「]」)を使った文法で「短いコード」を記述することから、ショートコードと呼ばれています。

ショートコードのメリット

ショートコードを使うメリットは、主に以下の3つです。

  • 作業の効率化
  • デザインの自由度向上
  • 管理作業の簡素化

ショートコードを使うことで、定型文やよく使うデザインパーツを簡単に呼び出せます。また、ショートコードを使えば、PHPコードを書かなくても、ウェブサイトにさまざまな機能を追加することができます。そのため、作業の効率化やデザインの自由度向上、管理作業の簡素化に役立ちます。

ショートコードの使い方

ショートコードを使うには、まずショートコードを定義する必要があります。ショートコードを定義するには、テーマのfunctions.phpファイルにショートコードを記述します。ショートコードの記述方法は、以下のとおりです。

function [shortcode_name]() {
  // ショートコードの処理内容
}
add_shortcode('shortcode_name', 'shortcode_name');

ショートコードを定義したら、ウェブサイトのコンテンツにショートコードを記述します。ショートコードの記述方法は、以下のとおりです。

[shortcode_name]

ショートコードの種類

ショートコードの種類

  • 自己完結型
  • 囲み型

ショートコードの作成方法

ショートコードを作成するには、次の手順に従います。

  1. テーマのfunctions.phpファイルにショートコードを記述します。
  2. ショートコードの処理内容を記述します。
  3. ショートコードを呼び出すための関数を定義します。
  4. ショートコードを呼び出すための関数を、add_shortcode()関数を使って追加します。

引数を使った作成例

ショートコードに引数を使いたい時の例として下記のようなコードがあります。デフォルト値を設定するためにshortcode_atts()関数を使います。

/****************************************************************
 * news list
 *
 * parameter type : post type
 ***************************************************************/
function le_get_latest_news($atts, $content = "null")
{
	$ret = "";

	//set default
	$atts = shortcode_atts(array(
		'type' => "post",
		'number' => '-1',
		'pagination' => false,
		'is_cat' => false,
		'show_cat' => true,
	), $atts);

	$type = ($atts['type'] ? $atts['type'] : 'post');
	$number = ($atts['number'] ? $atts['number'] : '-1');
	$pagination = ($atts['pagination'] ? $atts['pagination'] : false);
	$is_cat = ($atts['is_cat'] ? $atts['is_cat'] : false);
	$show_cat = ($atts['show_cat'] ? $atts['show_cat'] : true);

	$ret .= '<dl id="js_topics" class="topics_list js_date_group">';

	$args = array(
		'post_type' => $type,
		"posts_per_page" => $number,
		"post_status" => "publish",
		'paged' => get_query_var('paged'),
	);

	$query = new WP_Query($args);
	if ($query->have_posts()) :
		while ($query->have_posts()) :
			$query->the_post();
			$post_type_name = get_post_type();
			$dt_class = "";
			$sub_info = "";
			$post_type_obj = get_post_type_object($post_type_name);
			if (!$is_cat) {
				$sub_info = $post_type_obj->description;
				$dt_class = "author author--" . $post_type_name;
			} else {
				$cats = get_the_terms("", "sub-category");
				if ($cats) {
					foreach ($cats as $cat) {
						$dt_class = "author author--" . $cat->slug;
						$sub_info = $cat->name;
					}
				} else {
					$sub_info = "サブ情報";
					$dt_class = "author author--sub";
				};
			}

			$ret .= '<a href="' . get_the_permalink() . '">';
			$ret .= '<dt class="topics_list__date js_date">' . get_the_time("Y/m/j");
			if ($show_cat) {
				$ret .= '<span class="topics_list__author ' . $dt_class . '">' . $sub_info . '</span>';
			}
			$ret .= '</dt>';
			$ret .= '<dd class="topics_list__desc">' . get_the_title() . '</dd>';
			$ret .= '</a>';
		endwhile;
	endif;
	wp_reset_postdata();

	$ret .= '</dl>';
	if ($pagination) {
		$ret .= pagination($query->max_num_pages);
	}

	ob_start();
	echo $ret;
	return ob_get_clean();
}

add_shortcode('get_latest_news', 'le_get_latest_news');

ショートコードのまとめ

ショートコードは、WordPressのウェブサイトにさまざまな機能を追加するための便利な機能です。ショートコードを使うことで、作業の効率化やデザインの自由度向上、管理作業の簡素化などに役立ちます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です