$term_obj = get_term_by('slug','news','category');
このコードは、WordPress のデータベースから特定のターム(用語)を取得する処理を行っています。
get_term_by()
関数:- WordPress の組み込み関数で、指定した条件に一致する単一のタームを取得します。
- 引数:
'slug'
: タームを検索する際に使用するフィールドを指定します。ここでは、タームのスラッグ(URL で使用される一意な文字列)で検索することを意味します。その他(ID,slug,name)'news'
: 検索するタームのスラッグです。この場合は、「news」というスラッグを持つタームを探します。'category'
: 検索対象のタクソノミーを指定します。ここでは、「カテゴリー」タクソノミーから検索することを意味します。
$term_obj
変数:- 検索結果のタームオブジェクトが格納されます。このオブジェクトには、タームの ID、名前、スラッグなどの情報が含まれています。
- データベース検索: WordPress のデータベースから、スラッグが「news」で、カテゴリータクソノミーに属するタームを探します。
- タームオブジェクトの作成: 見つけたタームの情報をもとに、タームオブジェクトを作成します。
- 変数への格納: 作成されたタームオブジェクトを
$term_obj
変数に代入します。
PHP
// タームオブジェクトを取得
$term_obj = get_term_by('slug','news','category');
// タームが存在する場合
if ( $term_obj ) {
// ターム名を表示
echo $term_obj->name;
// タームのリンクを表示
echo '<a href="' . get_term_link( $term_obj ) . '">' . $term_obj->name . '</a>';
} else {
echo '「news」というカテゴリーは見つかりませんでした。';
}
<button type="button" class="button button-ghost"
onclick="javascript:location.href = '<?php echo esc_url(get_term_link($term_obj)); ?>';">
<?php echo $term_obj->name ?>一覧を見る
</button>
function get_specific_posts( $post_type, $taxonomy = null, $term = null, $number = -1 ) {
if ( ! $term ):
$terms_obj = get_terms( 'event' );
$term = wp_list_pluck( $terms_obj, 'slug' );
endif;
$args = array(
'post_type' => $post_type,
'tax_query' => array(
array(
'taxonomy' => $taxonomy,
'field' => 'slug',
'terms' => $term,
),
),
'posts_per_page' => $number,
);
$specific_posts = new WP_Query( $args );
return $specific_posts;
}
get_specific_posts()
関数の詳細解説
get_specific_posts()
関数は、WordPress の投稿を、指定された条件に基づいて取得するためのカスタム関数です。この関数を使うことで、特定の投稿タイプ、タクソノミー、タームを持つ投稿を柔軟に抽出することができます。
$post_type
: 取得したい投稿の種類 (例: ‘post’, ‘page’, ‘product’)$taxonomy
: フィルターに使用するタクソノミー (例: ‘category’, ‘post_tag’, ‘product_cat’)$term
: フィルターに使用するタームのスラッグ$number
: 取得する投稿数。負の値を指定すると、すべての該当する投稿を取得します。
- デフォルトのターム:
$term
が指定されていない場合、デフォルトで ‘event’ タクソノミーのすべてのタームが使用されます。つまり、イベント関連の投稿が取得されるように設定されています。
- クエリ引数の作成:
WP_Query
オブジェクトに渡す引数を作成します。post_type
: 取得する投稿タイプtax_query
: タクソノミーとタームに基づいたクエリposts_per_page
: 取得する投稿数
WP_Query
実行:- 作成した引数を使って
WP_Query
を実行し、指定された条件に合致する投稿を取得します。
- 作成した引数を使って
- 結果の返却:
- 取得した投稿を含む
WP_Query
オブジェクトを返します。
- 取得した投稿を含む
PHP
// イベント関連のすべての投稿を取得
$event_posts = get_specific_posts('post', 'event');
// 'product' 投稿タイプのうち、'featured' カテゴリーに属する最初の5件を取得
$featured_products = get_specific_posts('product', 'product_cat', 'featured', 5);
// 'page' 投稿タイプのすべての投稿を取得 (デフォルトのタームは使用されない)
$all_pages = get_specific_posts('page');
- 柔軟性: 様々な条件で投稿を取得できる
- カスタマイズ性: デフォルトの動作を変更して、より複雑なクエリを作成できる
- 再利用性: さまざまな場面で繰り返し使用できる
get_specific_posts()
関数は、WordPress の投稿を柔軟に取得するための強力なツールです。この関数を理解し、適切に活用することで、より動的なウェブサイトを作成することができます。