it-swarm.asia

إنشاء نوع مخصص صورة مركزية النشر؟

هل لدى أي شخص أي نصائح لإنشاء نوع مخصص للنشر مخصص للصور؟

للتوضيح ، تحتوي مدونتي على صور رأس دوارة ، كما هو موضح أدناه:

Blog header showing random images

تكون الصورتان في أعلى اليسار عشوائية ، وهي موجودة كمرفقات إلى صفحة محددة موجودة فقط لاحتواء هذه الصور. أتساءل عما إذا كان من الممكن تخزينها بطريقة مختلفة باستخدام أنواع المنشورات المخصصة. لقد قمت بإنشاء نوع منشور جديد ، "صورة رأس" ، وأنا أحاول معرفة إلى أين أذهب من هنا. أريد أن يحتوي كل "منشور" يحتوي على صورة رأس على مرفق صورة واحد. بدلاً من سحب الصور العشوائية من إحدى الصفحات ، أود سحب النشرات العشوائية من نوع منشور صورة الرأس. ونظرا لهذا،

  1. كيف يمكنني دمج واجهة بسيطة في عملية المرفقات المتاحة من صفحة إدارة "صورة رأس جديدة"؟
  2. هل يمكنني إزالة مربعات عنوان الإدخال وإدخال المحتوى لإلغاء تصنيف هذه الصفحة؟

الأهداف هي إنشاء واجهة أفضل لعملية التحميل الحالية ، وفي نهاية المطاف تكون قادرة على إنشاء تصنيف لوضع علامة على الصور كصورة يسارية/صورة صحيحة. (عند النظر إلى الصورة أعلاه ، يمكنك رؤية الصورة على اليمين تغطي الوجه في الصورة الأخرى. يمكنني تجنب ذلك عن طريق وضع علامة على الصور لعرض الجانب الأيسر و/أو الأيمن). لن تكون المشكلة الأخيرة مشكلة إذا يمكنني تنفيذ السابق.

التحديث: بناءً على إجابة هنا ، تمكنت من تنفيذ هذا الإعداد. الرمز الكامل هو نشر أدناه .

16
Annika Backstrom

أعطاني إجابة goldenapple الأولية قفزة كنت بحاجة لإنهاء هذا الأمر.

functions.php

إليك الرمز الكامل الذي أستخدمه لإضافة نوع منشور جديد "صورة رأس" وتعديل شاشات المشرف الأخرى وفقًا لذلك:

/**
 * 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' );

لقطات المسؤول

Header Images post list

Header Images post editing

رمز القالب

$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' );

يجب أن يسجل نوع المنشور الخاص بك دون أي شيء سوى حقل لصورة مميزة. راجع المخطوطة http://codex.wordpress.org/Function_Reference/register_post_type للحصول على قائمة بالوسائط المطلوب تمريرها.

13
goldenapples