2015-06-28 7 views
6

द्वारा लेखक पृष्ठ में पोस्ट गिनती कैसे प्रदर्शित करें मैं काउंटर के साथ लेखक पृष्ठ में कस्टम वर्गीकरण प्रदर्शित करने की कोशिश कर रहा हूं लेकिन मुझे नहीं पता कि यह कैसे करना है।वर्डप्रेस: ​​कस्टम वर्गीकरण

मैं function.php

add_action('pre_get_posts', function ($q) { 

    if(!is_admin() && $q->is_main_query() && $q->is_author()) { 

     $q->set('posts_per_page', 100); 
     $q->set('post_type', 'custom_feedback'); 

    } 

}); 

में और मेरे लेखक पेज में एक कोड है:

<div class="feedback-respond"> 
     <h3 class="feedback-title">User Feedback </h3> 
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
       <?php the_content(); ?> 
      <?php endwhile; else: ?> 
       <p><?php _e('No posts by this author.'); ?></p> 
      <?php endif; ?> 
      </div> 

कोड सभी लेखक प्रोफ़ाइल के लिए काम करता है, लेकिन मैं कैसे करने के लिए पता नहीं है इस तरह प्रदर्शित करने के लिए कस्टम वर्गीकरण प्राप्त करें:

उपयोगकर्ता फ़ीडबैक

6 सकारात्मक प्रतिक्रिया 4 नकारात्मक प्रतिक्रिया

सभी प्रतिक्रिया यहाँ जाता है

सभी प्रतिक्रिया यहाँ जाता है

सभी प्रतिक्रिया यहाँ

जिस तरह से यह एक कस्टम पोस्ट प्रकार है से भी जाना जाता (custom_feedback) और कस्टम वर्गीकरण (feedback_taxonomy) दो श्रेणी सकारात्मक और नकारात्मक के साथ।

कृपया स्वामी की मदद करें?

+0

https://codex.wordpress.org/ Function_Reference/get_post_custom – odedta

+0

लेकिन यह कस्टम फ़ील्ड नहीं है, यह लेखक.पीपी प्रदर्शित में कस्टम वर्गीकरण है। – rolex

+0

मुझे Google के लिए यह बताएं: http://wordpress.stackexchange.com/questions/10175/how-to-display-custom-taxonomies-in-posts – odedta

उत्तर

1

इस पर विश्वास करने का आपका एकमात्र तरीका दो अलग-अलग प्रश्नों को चलाने और दो अलग-अलग प्रश्नों से लौटाई गई पोस्टों की गणना करना होगा। इसके लिए हम get_postsget_posts का उपयोग WP_Query पर कुछ महत्वपूर्ण डिफ़ॉल्ट रूप से पास कर सकते हैं ताकि क्वेरी तेज और अधिक प्रदर्शन उन्मुख हो सके।

हम क्वेरी में एक विशाल समय और संसाधन बचतकर्ता जोड़ देंगे, 'fields' => 'ids'। यह क्या करता है, यह केवल पोस्ट आईडी प्राप्त करता है, न कि पूर्ण पोस्ट ऑब्जेक्ट। यह क्वेरी समय और डीबी प्रश्नों को 99% तक काट सकता है, भले ही आप पूरे डेटाबेस पर 2 अलग-अलग प्रश्नों को चलाने जा रहे हैं, पेज प्रदर्शन में हानि अनजान होगी।

चलें कोड में डाल दिया सब कुछ (यह author.php में चला जाता है, और ध्यान दें, यह कोड अपरीक्षित है और 5.4+ कम से कम पीएचपी की जरूरत है)

$author_id = get_queried_object_id(); // Gets the author id when viewing the author page 

// Add our term slugs into an array. 
$terms = ['positive', 'negative']; // Just make sure these values are correct 
$count = []; 
foreach ($terms as $term) { 
    // Build our query 
    $args = [ 
     'nopaging' => true, 
     'post_type' => 'custom_feedback', 
     'author' => $author_id, 
     'tax_query' => [ 
      [ 
       'taxonomy' => 'feedback_taxonomy', 
       'field' => 'slug', 
       'terms' => $term 
      ], 
     ], 
     'fields' => 'ids' 
    ]; 
    $q = get_posts($args); 

    // Count the amount of posts and add in array 
    $count[$term] = count($q); 
} 

// Display our text with post counts, just make sure your array keys correspond with your term slugs used 
$positive = (isset($count['positive'])) ? $count['positive'] : 0; 
$negative =(isset($count['negative'])) ? $count['negative'] : 0; 

echo $positive . ' POSITIVE feedback ' . $negative . ' NEGATIVE feedback'; 
+0

सही काम करता है। धन्यवाद @PieterGoosen। क्या मैं एक और बात पूछ सकता हूँ?the_content() को संशोधित करने का कोई तरीका है? मैं एक सीएसएस वर्ग को नकारात्मक और सकारात्मक वर्गीकरण में जोड़ना चाहता हूं। – rolex

+0

मेरी खुशी, खुशी है कि यह काम करता है। हाँ, यह किया जा सकता है। हालांकि आपको इसके लिए एक नया प्रश्न शुरू करना चाहिए :-) –

+0

ठीक है, मैं बहुत कुछ करूँगा। – rolex

संबंधित मुद्दे