워드 프레스에서 쿼리 변수 전달 및 검색


16

저자 페이지가 두 개 있는데, 하나는 약 5 개의 게시물을 표시합니다. 그런 다음 모든 게시물이 될 다른 페이지를 설정하려고합니다. moreauthorposts.php라는 템플릿을 만들었으며 작성자 변수를이 페이지에 전달하려고합니다. 문제는 domain.com/more-author-posts?author=johndoe를 전달하면 제거됩니다. 이 값을 어떻게 검색 할 수 있습니까? 워드 프레스에서도 가능합니까? WP Rewrite가 어떻게 든 확실하지 않은 URL 구조를 훔치고 있다는 것을 알고 있습니다.

난 노력 했어:

get_query_var('author')

이것을 읽으려고했지만 운이 없었습니다.

http://codex.wordpress.org/Query_Overview

제안?

감사.

답변:


21

나는 그것이 author내장되어 있다고 확신 하므로, 같은 것을 사용하십시오 author_more. query_vars먼저 var를 추가해야합니다 . 예:

// add `author_more` to query vars
add_filter( 'init', 'add_author_more_query_var' );
function add_author_more_query_var()
{
    global $wp;
    $wp->add_query_var( 'author_more' );
}

그런 다음 more-author-posts.php템플릿 에서 다음 과 같이 호출하십시오.

if ( get_query_var( 'author_more' ) )
{
    // do your stuff
}

최신 정보

이것은 다음 URl 예제 / 사용 사례에서 작동합니다.

http://example.com/index.php?author_more=value

그러나 이것을 멋진 URl로 사용하려면 다시 쓰기 규칙을 추가해야합니다.

add_action('init','add_author_more_rewrite_rule');
function add_author_more_rewrite_rule()
{
    add_rewrite_rule(
        'more-author-posts/(\d*)$',
        'index.php?author_more=$matches[1]',
        'top'
    );
}

이제 이렇게 사용할 수 있습니다

http://example.com/more-author-posts/value

좋아, 쿼리 vars를 functions.php에 추가했습니다. 그런 다음 다른 코드를 더 많은 작성자 게시물에 추가했습니다. 이를 통과하는 올바른 URL 구조는 무엇입니까? paged는 / page / 2 형식을 사용하지만 more-author-posts / more_author / johndoe를 수행해도 작동하지 않는 것 같습니다.
codeisforeva

나는 대답을 업데이트
Bainternet

문제는 vars를 index.php에 전달하지 않는 것입니다. 색인과 완전히 다르게 보이기 때문에 내가 개발 한 사용자 지정 템플릿으로 전달하려고합니다. 따라서 내가 moreauthor.php? author_more = johndoe.에 값을 전달하면 작동하지 않는 것 같습니다. 여기서 뭔가 잘못하고 있습니까?
codeisforeva

@ בניית אתרים는 매우 명확한 답변처럼 보입니다! @codeisforeva 템플릿 파일을 직접 호출해서는 안됩니까? index.php는 워드 프레스의 루트 파일 일뿐입니다.
goldenapples

1
@codeisforeva : index.php다시 쓰기 규칙은 템플릿 파일이 index.php아니라 WordPress의 루트 디렉토리에 index.php있습니다. template_include필터 에 연결하여 표시 할 템플릿을 계속 선택할 수 있습니다 .
Jan Fabry
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.