私はこれに数回突き刺して、障害物を打った。できるだけわかりやすいようにします。
"location"に関連付けられた "用語"を取得してフロントエンドの[最近の投稿]リストに表示する方法がわからないという例外を除いて、現在機能するショートコードを作成しました。サムネイル、タイトル、および日付のみが表示されています。
現在私はwp_get_recent_posts
を使用していますが、少し読んだ後でそれを使用するべきですか?それともWP_Query
を使うべきですか?
これが私のコードです:
function recent_cpt_list_display( $atts ) {
$atts = shortcode_atts( array(
'cpt_type' => 'bars',
'show_posts' => 5,
'cpt_cat' => 'location',
), $atts, 'cpt-recent-posts' );
global $post;
$cpt_type = $atts['cpt_type'];
$show_posts = $atts['show_posts'];
$cpt_cat = $atts['cpt_cat'];
$cpt_posts = wp_get_recent_posts( array(
'post_type' => $cpt_type,
'orderby' => 'date',
'order' => 'ASC',
'numberposts' => $show_posts
));
if ( ! empty( $cpt_posts ) && ! is_wp_error( $cpt_posts ) ) {
$output = '<ul class="cpt-recent-posts">';
foreach( $cpt_posts as $cpt_post ){
$output .= '<li>';
$output .= '<div class="cpt-recent-posts-thumb">' . get_the_post_thumbnail( $cpt_post['ID'], 'thumbnail' ) . '</div>';
$output .= '<div class="cpt-recent-meta">';
$output .= '<a href="' . get_permalink( $cpt_post["ID"] ) . '" title="' . esc_attr( $cpt_post["post_title"] ) . '" >' . $cpt_post["post_title"].'</a>';
$output .= '<div class="cpt-meta">' . NEED TO OUTPUT LOCATION HERE . '</div>';
$output .= '<div class="cpt-post-date">' . get_the_time( get_option( 'date_format' ), $post->ID ) . '</div>';
$output .= '</div></li>';
}
$output .= '<ul>';
}
return $output;
}
add_shortcode( 'cpt-recent-posts', 'recent_cpt_list_display' );
これをより良くするためのどんな洞察でも、私はまだ学んでいるので私はすべて耳です。私はすべてにプラグインを使うことに頼らずに、できる限りコーディングしたいと思っています。
前もって感謝します。
特定の投稿の用語を取得するには、get_the_terms
を使用します。
$terms = get_the_terms( $cpt_post['ID'], 'location' );
if ( $terms && ! is_wp_error( $terms ) ){
$output .= '<div class="cpt-meta">';
foreach ( $terms as $term ) {
$output .= $term->name . ' ';
}
$output .= '</div>';
}