반응형
WordPress의_posts_pagation에서 페이지 번호를 자신의 div로 랩핑하려면 어떻게 해야 합니까?
WordPress에서 사용하고 있는the_posts_pagination
이전/다음 버튼과 페이지 번호를 그 사이에 뱉어냅니다.특정 요소를 디브로 그룹화하고 싶을 때 워드프레스가 자체 마크업을 하는 방식이 마음에 들지 않습니다.
이것이 제 현재 코드입니다.
PHP
<?php the_posts_pagination( array(
'mid_size' => 2,
'prev_text' => __( 'Previous Page', 'textdomain' ),
'next_text' => __( 'Next Page', 'textdomain' ),
'screen_reader_text' => ( '' )
) ); ?>
다음과 같은 말을 합니다.
HTML
<nav class="navigation pagination" role="navigation">
<div class="nav-links">
<a class="prev page-numbers" href="#">Prev Page</a>
<a class="page-numbers" href="#">1</a>
<span class="page-numbers current">2</span>
<a class="page-numbers" href="">3</a>
<a class="page-numbers" href="">4</a>
<a class="next page-numbers" href="">Next Page</a>
</div>
</nav>
이렇게 만들 수 있는 능력이 있으면 좋겠습니다.
<nav class="navigation pagination" role="navigation">
<div class="nav-links">
<a class="prev page-numbers" href="#">Prev Page</a>
<div class="page-numbers-container">
<a class="page-numbers" href="#">1</a>
<span class="page-numbers current">2</span>
<a class="page-numbers" href="">3</a>
<a class="page-numbers" href="">4</a>
</div>
<a class="next page-numbers" href="">Next Page</a>
</div>
</nav>
다음 링크와 이전 링크를 디브로 포장할 수 있다고 해도 좋을 것 같습니다.핵심 워드프레스 파일을 편집할 필요가 없습니다.함수를 작성해야 합니까?
편집
이것은 내 인덱스에 있습니다.php.
<?php the_posts_pagination( wp_custom_pagination(['prev_text' => __( 'Previous Page', 'textdomain' ), 'next_text' => __( 'Next Page', 'textdomain' )])); ?>
이것이 제가 기능 안에 넣은 것입니다.php
function wp_custom_pagination($args = [], $class = 'pagination') {
if ($GLOBALS['wp_query']->max_num_pages <= 1) return;
$args = wp_parse_args( $args, [
'mid_size' => 2,
'prev_next' => false,
'prev_text' => __('Older posts', 'textdomain'),
'next_text' => __('Newer posts', 'textdomain'),
'screen_reader_text' => __('Posts navigation', 'textdomain'),
]);
$links = paginate_links($args);
$next_link = get_previous_posts_link($args['next_text']);
$prev_link = get_next_posts_link($args['prev_text']);
$template = apply_filters( 'navigation_markup_template', '
<nav class="navigation %1$s" role="navigation">
<h2 class="screen-reader-text">%2$s</h2>
<div class="nav-links">%3$s<div class="page-numbers-container">%4$s</div>%5$s</div>
</nav>', $args, $class);
echo sprintf($template, $class, $args['screen_reader_text'], $prev_link, $links, $next_link);
}
_posts_pag화 ()은 필터가 없는 paginate_links()를 사용하여 원하는 대로 출력을 변경합니다.
그러면 사용자 지정 페이지 템플릿을 만들어 보겠습니다.
function the_so37580965_wp_custom_pagination($args = [], $class = 'pagination') {
if ($GLOBALS['wp_query']->max_num_pages <= 1) return;
$args = wp_parse_args( $args, [
'mid_size' => 2,
'prev_next' => false,
'prev_text' => __('Older posts', 'textdomain'),
'next_text' => __('Newer posts', 'textdomain'),
'screen_reader_text' => __('Posts navigation', 'textdomain'),
]);
$links = paginate_links($args);
$next_link = get_previous_posts_link($args['next_text']);
$prev_link = get_next_posts_link($args['prev_text']);
$template = apply_filters( 'the_so37580965_navigation_markup_template', '
<nav class="navigation %1$s" role="navigation">
<h2 class="screen-reader-text">%2$s</h2>
<div class="nav-links">%3$s<div class="page-numbers-container">%4$s</div>%5$s</div>
</nav>', $args, $class);
echo sprintf($template, $class, $args['screen_reader_text'], $prev_link, $links, $next_link);
}
한번 해보세요.또한 paginate_links() 함수를 살펴보세요. 더 많은 인수가 필요할 수 있습니다.
언급URL : https://stackoverflow.com/questions/37580965/how-can-i-wrap-page-numbers-from-the-posts-pagination-in-wordpress-into-my-own-d
반응형
'programing' 카테고리의 다른 글
하나의 SQL 조회에서 모든 상위 행 가져오기 (0) | 2023.10.30 |
---|---|
여백 또는 패딩을 부모 컨테이너 높이의 백분율로 설정하는 방법은 무엇입니까? (0) | 2023.10.30 |
Pandas to_sql에서 스키마 지정 (0) | 2023.10.30 |
Oracle - 없는 경우에만 인덱스 만들기 (0) | 2023.10.30 |
Oracle에서 로컬 변수를 정의하는 가장 간단한 방법은 무엇입니까? (0) | 2023.10.30 |