【WordPress筆記】 利用shortcode 的方式將指定的post type 文章顯示在頁面中
前言
當WordPress頁面都是用shortcode疊出來的時候,你的文章(post)也是需要變成shortcode的情況下才有辦法將它卡到頁面的某個地方,以下方式可以將你的文章(post)轉成shortcode的方式,讓你在頁面中可以方便的調用它!!
以下範例code,可以寫至theme目錄下的functions.php中
function home_post_listing_shortcode( $atts ) {
ob_start();
<!--將query 到的資料存到$query-->
$query = new WP_Query( array(
'post_type' => 'post', <!--post_type輸入你想要抓取的文章類型-->
'posts_per_page' => 3, <!--取出x筆數據-->
'order' => 'DSC', <!--排序方式ASC(小->大),DSC(大->小)-->
'orderby' => 'title',<!--文字大小做排列-->
) );
<!--如果文章中有posts時執行-->
if ( $query->have_posts() ) { ?>
<ul class="info-listing">
<!--執行while循環,將上方$query裡面的資料跑循環吐到頁面中-->
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<li id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<!--打印分類(含分類連結)-->
<div class="category_name"><?php the_category();?></div>
<!--打印日期-->
<?php the_date('Y-m-d \a\t g:ia', '<div class="news_date">', '</div>'); ?>
<!--打印文章連結 &文章標題-->
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php endwhile;
wp_reset_postdata(); ?>
</ul>
<?php $myvariable = ob_get_clean();
return $myvariable;
}
}
將上方定義的function: home_post_listing_shortcode 代入 add_shortcode ,並賦予新的shortcode名稱ist-posts-home
add_shortcode( 'list-posts-home', 'home_post_listing_shortcode' );
接下來我們就可以直接到WordPress後台->頁面直接插入[list-posts-home]就可以抓到剛剛我們定義的shortcode囉!!
結論
網站首頁時常都會需要秀出一些最新發布的文章等。。如果你整個頁面都是用visual composer去製作的話,就會需要這種建立shortcode的方式去插入頁面,這樣的製作方式可以很有彈性,今天如果想要抓取某post type的某分類的文章秀到頁面時也可以利用這種方式去實現唷~