web-dev-qa-db-ja.com

ワードプレスでのクエリ変数の受け渡し

私は2つの著者ページを持っています、1つは5つのポストについて表示します。それから私は彼らのすべての投稿になる別のページを設定しようとしています。私はmoreauthorposts.phpと呼ばれるテンプレートを作成しました、そして私はこのページにauthor変数を渡します。問題は私がdomain.com/more-author-posts?author=johndoeを渡すとそれが取り除かれることです。この値を取得する方法これはワードプレスでも可能ですか?私はWP Rewriteが私のURL構造を破壊しているのを知っています。

私はもう試した:

get_query_var('author')

これを読んでみましたが、運がありませんでした。

http://codex.wordpress.org/Query_Overview

提案?

ありがとう。

15
codeisforeva

私はauthorが組み込まれているとほぼ確信しているので、author_moreのようなものを使います。最初にその変数をquery_varsに追加する必要があります。例:

// 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
20
Bainternet