การเปลี่ยนคลาสรายการเลขหน้า


17

paginate_links()ฟังก์ชันส่งคืนรายการที่ไม่เรียงลำดับพร้อมคลาสที่ชื่อ "หมายเลขหน้า" ฉันจะเปลี่ยนชั้นเรียนนี้ได้อย่างไร

แก้ไข

ขณะนี้ฉันกำลังใช้วิธีช่วยเหลือวงดนตรีด้านล่าง

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

มีวิธีที่ดีกว่านี้ไหม?


1
ฉันได้พบบทแนะนำอย่างย่อเกี่ยวกับเรื่องนี้และสิ่งที่ฉันสามารถเห็นคุณใช้คลาสธีม bootstrap ดังนั้นฉันจะคิดว่านี่จะช่วยได้! http://www.ordinarycoder.com/paginate_links-class-ul-li-bootstrap/
Erik Larsson

ฉันสร้างคลาส php ที่มีประโยชน์เมื่อคุณต้องการตั้งชื่อคลาสแท็ก LI และ A html gist.github.com/pixeline/1dc662b756c553eb5efcb6ec4753375f
pixeline

@ErikLarsson Link ใช้งานไม่ได้
MastaBaba

คำตอบ:


11

paginate_links()ไม่เสนอพารามิเตอร์และไม่มี hooks - ดูซอร์ส - พร้อมที่จะเปลี่ยนคลาส (es) paginate_links()ซึ่งหมายความว่าคุณสามารถทำมันได้เหมือนที่คุณได้ทำมันหรือคุณสร้างฟังก์ชั่นการแบ่งหน้าของคุณเองบนพื้นฐานของ


14

ฉันยังค้นหาวิธีแก้ไขปัญหาเดียวกันเพื่อใช้กับลิงค์การแบ่งหน้า bootstrap

โค้ดด้านล่างใช้งานได้ 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
คุณสามารถปรับปรุงประสิทธิภาพการทำงานได้เนื่องจากแบบสอบถามนี้จะถูกเรียกในแต่ละครั้งที่สร้างแต่ละหน้าแม้ว่าจะไม่จำเป็นต้องแบ่งหน้าก็ตาม เพิ่ม: `` `if ($ wp_query-> max_num_pages <= 1) ส่งคืน; `` `หลังจาก $ wp_query ทั่วโลกของคุณที่จุดเริ่มต้นของฟังก์ชัน
pixeline

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

ตัวเลือกอื่นที่ไม่ได้ระบุไว้ที่นี่คือการคัดลอกสไตล์ไปยังคลาสการให้คะแนนของ WordPress แทนการเปลี่ยนคลาสที่กำหนดให้กับองค์ประกอบ

หากคุณใช้ Bootstrap และรวมทุกอย่างเข้ากับ sass คุณสามารถใช้สไตล์ได้อย่างง่ายดายโดยใช้@extendคำสั่ง

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

นี่อาจเกี่ยวข้องกับบางสถานการณ์ แต่ฉันรู้สึกว่ารหัสในคำถามเดิมเป็นทางออกที่ดีที่สุดสำหรับการใช้งานส่วนใหญ่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.