Görüntü Merkezli Özel Gönderi Türü mü oluşturuyorsunuz?


17

Herkesin görüntü merkezli bir özel yazı türü oluşturmak için ipucu var mı?

Ayrıntılı olarak, blogumda aşağıda gösterilen dönen başlık resimleri var:

Rastgele resimler gösteren blog başlığı

Sol üstteki iki resim rastgele dağıtılır ve yalnızca bu resimleri içeren belirli bir sayfaya ek olarak bulunur. Özel yazı türlerini kullanarak bunları farklı bir şekilde saklamanın mümkün olup olmadığını merak ediyorum. Yeni bir yazı türü "header-image" oluşturdum ve buradan nereye gideceğimizi anlamaya çalışıyorum. Her başlık resmi "gönderisinin" bir resim ekine sahip olmasını istiyorum. Bir sayfadan rastgele görüntüler çekmek yerine, başlık resmi yayın türünden rastgele yayınlar çekerdim. Bu göz önüne alındığında,

  1. "Yeni Başlık Resmi" yönetici sayfasında bulunan ek sürecine nasıl basit bir arayüz ekleyebilirim?
  2. Bu sayfayı düzenlemek için yayın başlığı ve içerik giriş kutularını kaldırabilir miyim?

Hedefler , mevcut yükleme işlemine daha iyi bir arayüz oluşturmak ve sonunda görüntüleri sol resim / sağ resim olarak işaretlemek için bir sınıflandırma oluşturabilmektir . (Yukarıdaki görüntüye bakarak, sağdaki fotoğrafı diğer fotoğraftaki yüzü kapatabilirsiniz. Sol ve / veya sağ taraftaki ekran için fotoğrafları işaretleyerek bundan kaçınabilirim.) İkincisi sorun olmazsa İlkini uygulayabilirim.

Güncelleme: Buradaki bir cevaba dayanarak, bu kurulumu uygulayabildim. Tam kod aşağıda yayınlanmıştır .


2
Kişiye, Yanıt Kabul Et kredisine gitmeniz gereken yere ulaşmanızı sağlayacak yanıtı vermenizi öneririm.
Ryan Gibbons

Yanıtlar:


18

goldenapple'ın ilk cevabı bana bunu bitirmek için gerekli atlayışı verdi.

functions.php

İşte yeni bir yazı türü "başlık-resim" eklemek ve buna göre diğer yönetici ekranlarını değiştirmek için kullandığım kodun tamamını:

/**
 * Register the Header Image custom post type.
 */
function sixohthree_init() {
    $labels = array(
        'name' => 'Header Images',
        'singular_name' => 'Header Image',
        'add_new_item' => 'Add Header Image',
        'edit_item' => 'Edit Header Image',
        'new_item' => 'New Header Image',
        'view_item' => 'View Header Image',
        'search_items' => 'Search Header Images',
        'not_found' => 'No Header Images found',
        'not_found_in_trash' => 'No Header Images found in Trash'
    );

    $args = array(
        'labels' => $labels,
        'public' => false,
        'show_ui' => true,
        'supports' => array('thumbnail')
    );

    register_post_type( 'header-image', $args );
}
add_action( 'init', 'sixohthree_init' );

/**
 * Modify which columns display when the admin views a list of header-image posts.
 */
function sixohthree_headerimage_posts_columns( $posts_columns ) {
    $tmp = array();

    foreach( $posts_columns as $key => $value ) {
        if( $key == 'title' ) {
            $tmp['header-image'] = 'Header Image';
        } else {
            $tmp[$key] = $value;
        }
    }

    return $tmp;
}
add_filter( 'manage_header-image_posts_columns', 'sixohthree_headerimage_posts_columns' );

/**
 * Custom column output when admin is view the header-image post list.
 */
function sixohthree_headerimage_custom_column( $column_name ) {
    global $post;

    if( $column_name == 'header-image' ) {
        echo "<a href='", get_edit_post_link( $post->ID ), "'>", get_the_post_thumbnail( $post->ID ), "</a>";
    }
}
add_action( 'manage_posts_custom_column', 'sixohthree_headerimage_custom_column' );

/**
 * Make the "Featured Image" metabox front and center when editing a header-image post.
 */
function sixohthree_headerimage_metaboxes( $post ) {
    global $wp_meta_boxes;

    remove_meta_box('postimagediv', 'header-image', 'side');
    add_meta_box('postimagediv', __('Featured Image'), 'post_thumbnail_meta_box', 'header-image', 'normal', 'high');
}
add_action( 'add_meta_boxes_header-image', 'sixohthree_headerimage_metaboxes' );

/**
 * Enable thumbnail support in the theme, and set the thumbnail size.
 */
function sixohthree_after_setup() {
    add_theme_support( 'post-thumbnails' );
    set_post_thumbnail_size(150, 100, true);
}
add_action( 'after_setup_theme', 'sixohthree_after_setup' );

Yönetici ekran görüntüleri

Başlık Resimleri yayın listesi

Başlık Görselleri düzenleme sonrası

Şablon kodu

$header_images = get_posts('post_type=header-image&orderby=rand&numberposts=2');

foreach( $header_images as $idx => $post ) {
    setup_postdata($post);
    the_post_thumbnail('post-thumbnail', array('class' => 'snapshot snapshot' . ($idx+1) ) );
}

İyi iş! Sevdim!
John P Bloch

Küçük resme nasıl bağlantı eklerim? Hem yönetici hem de şablonda mı? İyi görünümlü!
Florescu Adrian

Bu bir sayfaya resim atamak için değiştirilebilir mi?
Doidgey

13
function register_header_image() {
     register_post_type( 'header-image', 
                         array( 
                             'label'=>'Header Images',
                             'name'=>'Header Images',
                             'singular_name'=>'Header Image',
                             'public'=>true,
                             'show_ui'=>true,
                             'hierarchical'=>true,
                             'supports'=>array('thumbnail') ) );
}

add_action ('init','register_header_image');
add_theme_support( 'post-thumbnails' );

Bu, yazı türünüzü öne çıkan bir resim için alandan başka bir şeyle kaydetmemelidir. Geçirilecek argümanların bir listesi için http://codex.wordpress.org/Function_Reference/register_post_type koduna bakın .


1
"Öne çıkarılan resim" destek değeri, yeni bir başlık resmi oluştururken bana boş bir ekran verir, ancak "küçük resim" "Öne Çıkan Resim" adlı yeni bir meta kutu ekler. Teşekkürler!
Annika Backstrom

Haklısın. Bu benim hatam.
goldenapples
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.