페이지 매김에 정수가 아닌 이유는 무엇입니까?


17

paginate_links코덱스 함수 참조는 네트워크를 통해 모든 재 게시되고있어 몇 가지 예제 코드가 있습니다.

여기에는 다음과 같은 변수를 사용하는 섹션이 있습니다 $big = 999999999; // need an unlikely integer.

echo 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
) );

그리고 기능 str_replace에서 사용됩니다 echo paginate_links.

이것은 어떤 형태의 캡슐화입니까?

답변:


16

참고 get_pagenum_link( $big ): 첫 번째 매개 변수에서 제공 한 숫자를 기준으로 링크가 아닌 URL을 만듭니다 .

이 함수는 URL의 기본 패턴을 얻는 데 사용되며 여기에서 높은 정수가 사용됩니다.

  1. 정수를 인수로 제공해야합니다.
  2. 결과 URL이 필터링 apply_filters('get_pagenum_link', $result)되고 플러그인에 의해 변경 될 수 있습니다. 플러그인이 하위 페이지에 대해 별도의 제목을 구현하는 경우와 같이 기존 페이지와 일치하는 숫자의 경우이 위험이 약간 높습니다 .

따라서 이것은 단지… 더러운 규칙이며 다른 플러그인에 대한 신호입니다. 변경하지 마십시오! 나는 PHP_INT_MAX더 좋았지 만 여전히 추한 것 같아요 . 그리고 나는 얼마나 많은 플러그인 개발자 들이 그것을 알고 있는지 궁금합니다 .

그런 다음 번호가에 필요한 자리 표시 자로 바뀝니다 paginate_links().

여기서 볼 수있는 것은 불완전한 API 입니다. 이 예제에서 무언가를 배우십시오. 불완전한 API를 출시하지 마십시오. 문서가 부끄러워 보일 것입니다. :)


PHP_INT_MAX가 더 나은 IMO 였을 것이라고 생각하지만, 그 당시에는 더 혼란 스러웠을 것입니다. 나는 당신의 설명을 정말로 좋아합니다. 나는 단지 어떤 가정도하고 싶지 않았다.
Jason Green

따라서 기존 페이지 번호 에 영향 을 미치는 필터의 경우 에만 사용 됩니까? ( 어쨌든 기본적으로 사용하기 때문에 ). 내가 빠진 것이 아니라면 극단적 인 경우처럼 보입니다. get_pagenum_linkpaginate_links()get_pagenum_link()
Cai

@Cai 한번 진짜 문제가 된 것 같습니다. 오랫동안 유지 관리되는 코드베이스는 엣지 케이스에 대한 해결 방법으로 채워지는 경향이 있습니다.
fuxia

그것은 처럼 보이는 paginate_links() 항상 사용하지 않았다 get_pagenum_link()기본적으로 나는이 대회는 '가능성의 정수'다음 전과 경우에서입니다 (실제 해결 방법은 간단했다 경우 또는 정말 필요한 경우 궁금하네요 그래서 get_pagenum_link())?
Cai
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.