> 백엔드 개발 > PHP 튜토리얼 > WordPress4 페이지 매김

WordPress4 페이지 매김

巴扎黑
풀어 주다: 2016-11-10 09:16:16
원래의
1201명이 탐색했습니다.

저는 뉴비입니다. 서로 도와서 워밍업할 수 있었으면 좋겠습니다

최근에 워드프레스를 쇄신하고 있는데 페이징을 만드는 코드를 직접 작성했습니다
1, 다음을 추가합니다 CSS를 테마

Js 코드

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

.pagination {

    width: auto;

    display: block;

    text-align: center;

    margin: 30px;

}

.pagination a {

    background-color: #eee;

    text-decoration: none;

    color: #999;

    font-size: 18px;

    padding: 0px 10px;

    line-height: 32px;

    height: 32px;

    margin: 0px 0.5px;

}

.pagination a.page-btn {

    width: 40px;

}

.pagination a.page-btn .icon-prev {

    position: absolute;

    width: 0px;

    height: 0px;

    border-top: 6px solid transparent;

    border-bottom: 6px solid transparent;

    border-left: 6px solid transparent;

    border-right: 6px solid transparent;

    border-left: none;

    border-right: 6px solid #999;

    left: 50%;

    margin-left: -3px;

    top: 50%;

    margin-top: -6px;

    -webkit-transition: all 0.1s ease;

    transition: all 0.1s ease;

}

.pagination a.page-btn .icon-next {

    position: absolute;

    width: 0px;

    height: 0px;

    border-top: 6px solid transparent;

    border-bottom: 6px solid transparent;

    border-left: 6px solid transparent;

    border-right: 6px solid transparent;

    border-right: none;

    border-left: 6px solid #999;

    left: 50%;

    margin-left: -3px;

    top: 50%;

    margin-top: -6px;

    -webkit-transition: all 0.1s ease;

    transition: all 0.1s ease;

}

.pagination a:hover {

    color: #fff;

}

.pagination a:hover .icon-prev {

    width: 0px;

    height: 0px;

    border-top: 6px solid transparent;

    border-bottom: 6px solid transparent;

    border-left: 6px solid transparent;

    border-right: 6px solid transparent;

    border-left: none;

    border-right: 6px solid #fff;

}

.pagination a:hover .icon-next {

    width: 0px;

    height: 0px;

    border-top: 6px solid transparent;

    border-bottom: 6px solid transparent;

    border-left: 6px solid transparent;

    border-right: 6px solid transparent;

    border-right: none;

    border-left: 6px solid #fff;

}

.pagination span {

    display: inline-block;

    margin: 0px 1px;

    color: #adadad;

    font-size: 18px;

}

로그인 후 복사

에서 style.css로 복사하세요. 2. 다음 코드를 테마의 function.php,

에 복사하세요.

PHP 코드

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

/**

/**

 * @param int $total_pages

 *  总页数

 * @param int $paged

 *  当前页数从1计

 * @param int $visible_count

 *  可见的页码数,接受自定义,如果自定义小于1或者大于max,置为max

 *

 *@author shandaiwang

 */

define('MAX_VISIBLE_PAGE_COUNT', 20);

function pagination($total_pages = 0, $current_page = 1, $visible_count = MAX_VISIBLE_PAGE_COUNT){

    // 入参适配

    if($total_pages <= 1) {

        return;

    }

    if($current_page <= 0) {

        $current_page = 1;

    }

    if($visible_count <= 0 || $visible_count > MAX_VISIBLE_PAGE_COUNT) {

        $visible_count = MAX_VISIBLE_PAGE_COUNT;

    }

    // 入参适配结束

    // 页码列表适配

    $range = ceil(($visible_count + 1) / 2);

    $start = $current_page - $range + 1;

    if($start < 1) {

        $start = 1;

    }

    $end = $start + $visible_count - 1;

    if ($end > $total_pages) {

        $end = $total_pages;

        // 向前反推,尽可能使显示个数为$visible_count

        $start = $end - $visible_count + 1;

        if($start < 1) {

            $start = 1;

        }

    }

    // 页码列表适配结束

    // 渲染

    echo "<div class=&#39;pagination&#39;>";

    if($current_page > 1) { // pre

        echo(&#39;<a href="&#39;.get_pagenum_link($current_page - 1).&#39;" class="common-btn page-btn"> <div class="icon-prev"></div></a>&#39;);

    }

    if($start != 1) {   // first[...]

        echo(&#39;<a href="&#39;.get_pagenum_link(1).&#39;" class="common-btn">1</a>&#39;);

        if ($start != 2) {

            echo(&#39;<span>...</span>&#39;);

        }

    }

    for ($i=$start; $i <= $end; $i++){  // list

        if ($i == $current_page) {

            echo(&#39;<a href="javascript:;" class="common-btn active">&#39;.$i.&#39;</a>&#39;);

        } else {

            echo(&#39;<a href="&#39;.get_pagenum_link($i).&#39;" class="common-btn">&#39;.$i.&#39;</a>&#39;);

        }

    }

    if($end < $total_pages) {   //[...]last

        if ($end + 1 < $total_pages) {

            echo(&#39;<span>...</span>&#39;);

        }

        echo(&#39;<a href="&#39;.get_pagenum_link($total_pages).&#39;" class="common-btn">&#39;.$total_pages.&#39;</a>&#39;);

    }

    if($current_page < $total_pages) { // next

        echo(&#39;<a href="&#39;.get_pagenum_link($current_page + 1).&#39;" class="common-btn page-btn"> <div class="icon-next"></div></a>&#39;);

    }

    echo "</div>\n";

}

로그인 후 복사

3, 필요한 곳에 인용하세요.


WordPress4 페이지 매김

$를 얻는 방법은 다음과 같습니다. total_pages, $current_page,

WordPress4 페이지 매김

형태의 WP 쿼리를 사용합니다.
관련 라벨:
php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿