एक व्यवस्थापक पृष्ठ में दो कस्टम पोस्ट प्रकार मर्ज करें?


9

मैं 4 कस्टम पोस्ट प्रकारों के साथ एक साइट बना रहा हूं। हमारे ग्राहक / व्यवस्थापक के लिए चीजों को आसान बनाने के लिए, मैं सोच रहा हूं कि क्या बैकेंड में उन कस्टम पोस्ट प्रकारों को एक सूची में मर्ज करने का कोई तरीका है? जैसे यदि आप सामान्य बैकएंड व्यवस्थापक पृष्ठ को सूची और पोस्ट के कॉलम के साथ देखते हैं, तो क्या पेज ऐसा हो सकता है जो आसान छँटाई / खोज के लिए 3 अन्य पोस्ट प्रकारों में खींच सकता है?

मैं CPT को एक में जोड़ नहीं सकता, उन्हें यदि संभव हो तो व्यवस्थापक क्षेत्र में एक 'देखने' पृष्ठ के बाहर अलग रहना चाहिए।

यह कैसे करना है पर कोई विचार ?? या यहां तक ​​कि जहां यह कैसे विकसित करने के बारे में सोचना / सोचना शुरू करना है?


1
आप शायद 1 सीपीटी का उपयोग करके देख सकते हैं, फिर एकल सीपीटी में पदों को अलग करने के साथ 2 शब्दों के साथ एक कस्टम टैक्सोनॉमी बनाएं। तब आप सामने के अंत टेम्पलेट फ़ाइलों के शीर्ष पर कुछ तर्क कर सकते हैं ताकि आगंतुकों को शर्तों / कर के आधार पर किसी अन्य टेम्पलेट पर भेज सकें
Sy Holloway

जवाबों:


2

बस एक शुरुआती बिंदु, जैसा कि निश्चित रूप से मुद्दे आगे के विकास के दौरान पॉपअप होंगे। उदाहरण के लिए, अभी, खोज कार्यक्षमता टूटती है क्योंकि यह एक स्ट्रिंग (पोस्ट_टाइप) की उम्मीद करता है और यह एक सरणी प्राप्त कर रहा है।

डाक स्क्रीन में एक से अधिक पोस्ट प्रकार को सूचीबद्ध करने के लिए, हम pre_get_postsक्वेरी को हुक और संशोधित करते हैं। इस परीक्षण में, पोस्ट्स, पृष्ठ और उत्पादों को पोस्ट स्क्रीन ( http://example.com/wp-admin/edit.php) में एक साथ दिखाया जाएगा ।

add_action( 'pre_get_posts', 'join_cpt_list_wspe_113808' );

function join_cpt_list_wspe_113808( $query ) 
{
    // If not backend, bail out
    if( !is_admin() )
        return $query;

    // Detect current page and list of CPTs to be shown in Dashboard > Posts > Edit screen
    global $pagenow;
    $cpts = array( 'post', 'page', 'product' );

    if( 'edit.php' == $pagenow && ( get_query_var('post_type') && 'post' == get_query_var('post_type') ) )
        $query->set( 'post_type', $cpts );

    return $query;
}

प्रत्येक पोस्ट के साथ एक कॉलम दिखाने के लिए एक सहायक कोड पोस्ट प्रकार:

add_filter( 'manage_edit-post_columns', 'add_cpt_column_wspe_113808' );
foreach( array( 'post', 'page', 'product' ) as $cpt )
    add_action( "manage_{$cpt}_posts_custom_column", 'show_cpt_column_wspe_113808', 10, 2 );

function add_cpt_column_wspe_113808( $columns ) 
{
    $columns[ 'cpt' ] = 'Post Type';
    return $columns;
}

function show_cpt_column_wspe_113808( $column_name, $post_id ) 
{
    if ( 'cpt' != $column_name )
        return;
    echo get_post_type( $post_id );
}

0

मैं इसके लिए व्यवस्थापक मेनू संपादक प्रो की सलाह दूंगा। मैं इसे नीचे से लिंक करूँगा।

दिलचस्प। एक निश्चित परियोजना पर मैं काम कर रहा था मेरे पास कई सीपीटी (कस्टम पोस्ट प्रकार) थे जो संबंधित थे। यह खंड 'इंफो सेंटर' था और वे चाहते थे कि प्रेस विज्ञप्ति, श्वेत पत्र, प्रशंसापत्र आदि सूचना केंद्र के भीतर हों। सामने के छोर पर, यह बनाना आसान था। पीछे के छोर पर हम चाहते थे कि यह तार्किक रूप से एक साथ फिट हो, भी। विशिष्ट सामग्री (मेटा दायर) और लेआउट आवश्यकताओं के कारण अधिकांश कस्टम पोस्ट प्रकार CPT के रूप में सेट किए गए थे। हमने 20 सीपीटी के करीब होने, जैसे, समाप्त कर दिया।

उस ने कहा, हमने संबंधित इंफो सेंटर सीपीटी को बैक एंड मेनू से हटाने के लिए एडमिन एडिटर प्लगइन का उपयोग किया और फिर संबंधित सीपीटी लिंक के साथ एक 'इंफो सेंटर' मेनू बनाया। जबकि वे सभी संयुक्त लग रहे थे, वे नहीं थे।

यहाँ प्लगइन लिंक है: http://adminmenueditor.com/ डेमो भी बाहर की कोशिश करो।


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