WordPress不用插件實現多張特色圖片/縮略圖Featured Images
WordPress的文章、頁面或者自定義文章類型開啟特色圖片,通過註冊這個類型時,在support中添加參數「thumbnail」實現,比如:
- register_post_type('My CPT', array(
- 'label' => 'my_cpt',
- 'description' => '',
- 'public' => true,
- 'show_ui' => true,
- 'show_in_menu' => true,
- 'capability_type' => 'post',
- 'hierarchical' => false,
- 'rewrite' => array('slug' => 'product'),
- 'query_var' => true,
- 'supports' => array('title','editor','thumbnail') //這裡有了thumbnail就能為my_cpt這個類型添加縮略圖
- )
- );
複製代碼
一般我們在使用WordPress任何主題發佈文章時,都可以設置單張特色圖片,以便博客頁面和列表頁面調用,而對於想要在發佈文章時,同時發佈多個特色圖片到文章頁的效果,比如很多用WordPress做外貿電商站的,需要做產品信息,那可以採取如下方法。
- add_action( 'after_setup_theme', 'brain1981_featured_img_setup' );
- function brain1981_featured_img_setup(){
- add_action( 'add_meta_boxes', 'brain1981_feature_img_meta_box' );
- add_action( 'save_post', 'brain1981_feature_img_meta_box_save' );
- }
-
- function brain1981_feature_img_meta_box(){
- //$post_types = array('post','page');//給原生的文章和頁面開啟額外縮略圖
- $post_types = array('my_cpt');
- foreach($post_types as $post_type){
- add_meta_box('brain1981_feature_img_meta_box', __( 'More Product Images'), 'brain1981_feature_img_meta_box_cont', $post_type, 'side','low');
- }
- }
-
- function brain1981_feature_img_meta_box_cont($post){
- //以下這個數組可以任意擴展,比如featured_image_4,5,6...
- $meta_keys = array('featured_image_2','featured_image_3');
- foreach($meta_keys as $meta_key){
- $image_meta_val=get_post_meta( $post->ID, $meta_key, true);
- ?>
-
- [url=###]" style="width:100%;" alt="">[/url]
-
-
- <input type="hidden" name="" id="" value="">
-
-
- wp_nonce_field( 'brain1981_feature_img_meta_box', 'brain1981_feature_img_meta_box_nonce' );
- }
-
- function brain1981_feature_img_meta_box_save($post_id){
- if ( ! current_user_can( 'edit_posts', $post_id ) ){ return 'not permitted'; }
- if (isset( $_POST['brain1981_feature_img_meta_box_nonce'] ) && wp_verify_nonce($_POST['brain1981_feature_img_meta_box_nonce'],'brain1981_feature_img_meta_box' )){
- //以下這個數組可以任意擴展,比如featured_image_4,5,6...,但必須和brain1981_feature_img_meta_box_cont函數中一致
- $meta_keys = array('featured_image_2','featured_image_3');
- foreach($meta_keys as $meta_key){
- if(isset($_POST[$meta_key]) && intval($_POST[$meta_key])!=''){
- update_post_meta( $post_id, $meta_key, intval($_POST[$meta_key]));
- }else{
- update_post_meta( $post_id, $meta_key, '');
- }
- }
- }
- }
複製代碼 發佈頁效果演示
頁面調用這些特色圖片代碼參考
- $image_id = get_post_meta( get_the_ID(), 'featured_image_2', true);
- echo wp_get_attachment_image($image_id,'full');
複製代碼
需要實現swiper效果的可以自己將圖片鏈接寫進模板當中。
|