it-swarm-tr.com

Görüntü Merkezli Özel Posta Türü Oluşturma?

Görüntü merkezli bir özel yazı türü oluşturmak için herhangi bir ipucunuz var mı?

Ayrıntılı olarak blogumda, aşağıda gösterilen, başlık resimlerini döndürüyor:

Blog header showing random images

Sol üstteki iki resim rastgeledir ve yalnızca bu resimleri içeren belirli bir sayfaya ekler olarak bulunur. Özel yazı tipleri kullanarak bunları farklı şekilde depolamanın mümkün olup olmadığını merak ediyorum. Yeni bir başlık tipi "başlık resmi" oluşturdum ve buradan nereye gideceğimi bulmaya çalışıyorum. Her başlık görüntüsünün "gönder" in bir görüntü eki olmasını isterim. Bir sayfadan rastgele görüntüleri çekmek yerine, başlık resmi yazı türünden rastgele gönderileri çekerdim. Bunu göz önüne alındığında,

  1. "Yeni Üstbilgi Görüntüsü" admin sayfasından erişilebilen ek işlemine basit bir arayüzü nasıl ekleyebilirim?
  2. Bu sayfayı açmak için posta başlığını ve içerik giriş kutularını kaldırabilir miyim?

Hedefler daha iyi bir arayüz oluşturmaktır - mevcut yükleme işlemine ve sonunda görüntüleri sol/sağ resim olarak işaretlemek için bir taksonomi oluşturabilir . (Yukarıdaki resme bakıldığında, sağdaki fotoğrafı diğer fotoğraftaki yüzü kapatarak görebilirsiniz. Fotoğrafları sol ve/veya sağ taraftaki ekran için işaretleyerek bunu önleyebilirdim.) Eskiyi uygulayabilirim.

Güncelleme: buradaki cevaba göre, bu kurulumu uygulayabildim. Tam kod aşağıda yayınlanmıştır .

16
Annika Backstrom

goldenapple'ın ilk cevabı bana bunu bitirmek için ihtiyaç duyduğum zıplamamı verdi.

functions.php

Yeni bir yazı tipi "başlık resmi" eklemek ve diğer yönetici ekranlarını buna göre değiştirmek için kullandığım kodun tamamı:

/**
 * 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

Header Images post list

Header Images post editing

Ş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) ) );
}
17
Annika Backstrom
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ü özellikli bir resim için bir alandan başka bir şeyle kaydetmemelidir. İletilecek bağımsız değişkenlerin bir listesi için http://codex.wordpress.org/Function_Reference/register_post_type kodlarına bakın.

13
goldenapples