एक छवि-केंद्रित कस्टम पोस्ट प्रकार बनाना?


17

क्या किसी के पास छवि केंद्रित कस्टम पोस्ट प्रकार बनाने के लिए कोई सुझाव है?

विस्तृत करने के लिए, मेरे ब्लॉग में हेडर की छवियां घूमती हैं, जो नीचे दिखाई गई हैं:

यादृच्छिक चित्र दिखाने वाला ब्लॉग हेडर

शीर्ष बाईं ओर की दो छवियां यादृच्छिक होती हैं, और एक विशिष्ट पृष्ठ पर अनुलग्नक के रूप में मौजूद होती हैं जो केवल इन छवियों को समाहित करने के लिए मौजूद होती हैं। मुझे आश्चर्य है कि अगर कस्टम पोस्ट प्रकारों का उपयोग करके इन्हें अलग तरीके से संग्रहीत करना संभव है। मैंने एक नया पोस्ट प्रकार, "हेडर-इमेज" बनाया है, और मैं यह पता लगाने की कोशिश कर रहा हूं कि यहां से कहां जाना है। मैं चाहूंगा कि प्रत्येक हेडर-इमेज "पोस्ट" में एक इमेज अटैचमेंट हो। एक पृष्ठ से यादृच्छिक छवियों को खींचने के बजाय, मैं हेडर-इमेज पोस्ट प्रकार से यादृच्छिक पोस्ट खींचूंगा। अगर यह दिया रहे,

  1. मैं "नई हैडर छवि" व्यवस्थापक पृष्ठ से उपलब्ध लगाव प्रक्रिया के लिए एक सरल इंटरफ़ेस कैसे शामिल कर सकता हूं?
  2. क्या मैं उस पृष्ठ का पता लगाने के लिए पोस्ट शीर्षक और सामग्री इनपुट बॉक्स निकाल सकता हूं?

लक्ष्य वर्तमान अपलोड प्रक्रिया के लिए एक बेहतर इंटरफ़ेस बनाने के लिए हैं , और अंततः बाईं तस्वीरों या सही तस्वीर के रूप में छवियों को चिह्नित करने के लिए एक वर्गीकरण बनाने में सक्षम हैं । (ऊपर की छवि को देखते हुए, आप फ़ोटो को दाईं ओर फ़ोटो में देख सकते हैं, दूसरी फ़ोटो में चेहरा ऊपर है। मैं बाएँ और / या दाएँ पक्ष के प्रदर्शन के लिए फ़ोटो को चिह्नित करके इससे बच सकता था।) यदि बाद में कोई समस्या नहीं होगी। मैं पूर्व को लागू कर सकता हूं।

अपडेट: यहां एक उत्तर के आधार पर, मैं इस सेटअप को लागू करने में सक्षम था। पूरा कोड नीचे पोस्ट किया गया है


2
मैं आपको सुझाव दूंगा कि आप उस व्यक्ति को वह उत्तर दें जो आपको मिला है, जहां आपको स्वीकार जवाब क्रेडिट जाने की आवश्यकता है।
रयान गिबन्स

जवाबों:


18

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 = 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) ) );
}

अच्छा काम! इसे प्यार करना!
जॉन पी बलोच

और मैं थंबनेल से लिंक कैसे जोड़ूंगा? व्यवस्थापक और टेम्पलेट दोनों में? अच्छी लग रही हो!
फ्लोरसेकू एड्रियन

क्या किसी पृष्ठ पर एक छवि निर्दिष्ट करने के लिए इसे संशोधित किया जा सकता है?
डोगी

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

कि एक चित्रित छवि के लिए कुछ भी नहीं बल्कि एक क्षेत्र के साथ अपने पोस्ट प्रकार रजिस्टर करना चाहिए। पास करने के लिए तर्कों की सूची के लिए कोडेक्स http://codex.wordpress.org/Function_Reference/register_post_type देखें ।


1
"फ़ीचर्ड-इमेज" का एक समर्थन मूल्य मुझे नई हेडर इमेज बनाते समय एक खाली स्क्रीन देता है, लेकिन "थंबनेल" "फीचर्ड इमेज" नामक एक नया मेटा बॉक्स जोड़ता है। धन्यवाद!
अन्निका बैकस्ट्रॉम

आप सही हे। उस पर मेरी गलती।
सुनहरीमछली 17
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.