परिवर्तन सूची वर्ग


17

paginate_links()फ़ंक्शन "पृष्ठ-संख्या" नामक वर्ग के साथ अनियोजित सूची देता है। मैं इस वर्ग को कैसे बदल सकता हूं?

संपादित करें

वर्तमान में, मैं नीचे बैंड-सहायता पद्धति का उपयोग कर रहा हूं।

$return = paginate_links( $arg );
echo str_replace( "<ul class='page-numbers'>", '<ul class="pagination">', $return );

क्या कोई बेहतर तरीका है?


1
मुझे इस पर एक त्वरित ट्यूटोरियल मिला है, और मैं आपको बूटस्ट्रैप थीम क्लास का उपयोग करने के लिए क्या कर सकता हूं इसलिए मुझे लगता है कि इससे मदद मिलेगी! http://www.ordinarycoder.com/paginate_links-class-ul-li-bootstrap/
— एरिक लार्सन

मैंने एक php क्लास बनाई है जो तब उपयोगी होती है जब आपको LI और A html टैग क्लास के नाम सेट करने होते हैं। gist.github.com/pixeline/1dc662b756c553eb5efcb6ec4753375f
— pixline

@ErikLarsson लिंक टूट गया है।
— मस्ताबा

जवाबों:


11

paginate_links()एक पैरामीटर की पेशकश नहीं करता है और कोई हुक नहीं है - स्रोत देखें - वर्ग बदलने के लिए उपलब्ध (एस)। जिसका अर्थ है कि आप इसे कर सकते हैं जैसे कि आपने इसे किया है या आप अपना खुद का पेजिनेशन फंक्शन बना सकते हैं paginate_links()।


14

मैं बूटस्ट्रैप पेजिनेशन लिंक के साथ इसका उपयोग करने के लिए एक ही समाधान खोज रहा था,

नीचे दिया गया कोड मेरे विषय में 100% काम कर रहा है।

function bittersweet_pagination() {

global $wp_query;

if ( $wp_query->max_num_pages <= 1 ) return; 

$big = 999999999; // need an unlikely integer

$pages = paginate_links( array(
        'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
        'format' => '?paged=%#%',
        'current' => max( 1, get_query_var('paged') ),
        'total' => $wp_query->max_num_pages,
        'type'  => 'array',
    ) );
    if( is_array( $pages ) ) {
        $paged = ( get_query_var('paged') == 0 ) ? 1 : get_query_var('paged');
        echo '<div class="pagination-wrap"><ul class="pagination">';
        foreach ( $pages as $page ) {
                echo "<li>$page</li>";
        }
       echo '</ul></div>';
        }
}

index.php में कॉल करने के लिए फ़ंक्शन का उपयोग करें; <?php bittersweet_pagination(); ?>या कोई अन्य फ़ाइल। मैं कुछ बूटस्ट्रैप स्टाइल को भी अधिलेखित करता हूं जो आपकी मदद कर सकता है।

.pagination-wrap {
    clear: both;
    display: block;
    overflow: hidden;
    text-align: center;
}
.pagination-wrap .pagination {
    margin-bottom: 0;
    margin-top: 0;
}
.pagination-wrap .pagination > li:first-child > a, 
.pagination-wrap .pagination > li:first-child > span {
    border-bottom-left-radius: 0px;
    border-top-left-radius: 0px;
}
.pagination-wrap .pagination > li:last-child > a, 
.pagination-wrap .pagination > li:last-child > span {
    border-bottom-right-radius: 0px;
    border-top-right-radius: 0px;
}
.pagination-wrap .pagination > li > a,
.pagination-wrap .pagination > li > span {
    background-color: #4FBEBA;
    border: 1px solid #1BA5A0;
    padding: 10px 15px;
    font-weight: bold;
    color: #FFFFFF;
}
.pagination-wrap .pagination > li > a:hover, 
.pagination-wrap .pagination > li > span:hover, 
.pagination-wrap .pagination > li > a:focus, 
.pagination-wrap .pagination > li > span:focus {
    background-color: #1BA5A0;
    border-color: #189690;
}
.pagination-wrap .pagination .current {
    background-color: #1BA5A0;
    border-color: #189690;
}
.pagination-wrap .pagination .current:hover,
.pagination-wrap .pagination .current span:hover {
    background-color: #189690;
    border-color: #148781;
}

1
आप इस प्रदर्शन को सुधार सकते हैं, क्योंकि जब तक कोई पेजिंग आवश्यक नहीं है, तब भी इस क्वेरी को प्रत्येक पृष्ठ के उत्पन्न होने के समय कहा जाएगा। जोड़ें: `` `अगर ($ wp_query-> max_num_pages <= 1) वापसी; समारोह की शुरुआत में अपने वैश्विक $ wp_query के बाद ``।
— पिक्सलाइन

5

इसके लिए आपको टाइप पैरामीटर का उपयोग करना होगा

$links = paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $posts_array->max_num_pages,
    'prev_text'          => __( 'Previous page', 'twentyfifteen' ),
    'next_text'          => __( 'Next page', 'twentyfifteen' ),
    'type' => 'list'
) );
   echo $links

0

एक अन्य विकल्प जो यहां नोट नहीं किया गया है वह तत्व को सौंपे गए वर्ग को बदलने के बजाय, वर्डप्रेस पेजिनेशन कक्षाओं की शैलियों को कॉपी करना है।

यदि आप बूटस्ट्रैप का उपयोग कर रहे हैं और सब कुछ सैस के साथ बंडल कर रहे हैं, तो आप @extendनिर्देश का उपयोग करके आसानी से शैलियों को लागू कर सकते हैं ।

ul.page-numbers {
    @extend .pagination;
    > li {
        > a, > span {
            &.page-numbers {
                @extend .page-link
                &:focus, :hover {
                    /* Additional hover/focus styles here */
                }
            }
        }
    }
}

यह कुछ स्थितियों के लिए प्रासंगिक हो सकता है, लेकिन मुझे लगता है कि मूल प्रश्न में कोड अधिकांश अनुप्रयोगों के लिए सबसे अच्छा समाधान है।

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