1

URL 変数をcategory.phpファイルに渡す必要があります。
現在、私のカテゴリ ページは にあります。 http://example.com/category-slug/ SEO プラグインを使用してhttp://example.com/category/category-slug、一部を書き換えて削除してい/category/ます。

また、パーマリンクの設定は、設定メニューでこのオプションに設定されています。http://example.com/sample-post/

次に、次のように URL で変数を渡すことができるようにする必要があります。

http://example.com/category-slug/?type=VALUE 

また

http://example.com/category-slug/VALUE

ここで、「type」は変数の名前で、VALUE はその値です

functions.phpファイルでこのコードを使用してみました。

<?php    
   add_filter('query_vars', 'parameter_queryvars' );
   function parameter_queryvars( $qvars )
     {
        $qvars[] = 'type';
        return $qvars;
     }
    global $wp_query;
     if (isset($wp_query->query_vars['type']))
      {
        print $wp_query->query_vars['type'];
      }
?>

ただし、開こうとすると、http://example.com/category-slug/?type=somethingまたはhttp://example.com/category-slug/something「何も見つかりません」および「ページが見つかりません」というページが表示されます。

これについては何度も議論されてきましたが、私のケースではどの解決策もうまくいかないようです。
カテゴリ ページに変数を適切に渡すにはどうすればよいですか?

4

1 に答える 1

1

まず第一に、前の関数から戻るため、コードは if ステートメントに到達しません。

また、どの SEO ツールを使用しているかはわかりませんが、「query_vars」フィルターに対応する関数が 1 つあります: add_rewrite_rule()

カテゴリのパーマリンクを書き換える小さなプラグインを作成することをお勧めします。このようなもの(テストされていませんが、私が使用するプラグインに似ています):

// Flush added rewrite rules on activation
function category_permalink_rewrite_activate() {
    category_permalink_rewrite_set_rewrite_rules();
    flush_rewrite_rules();
}
register_activation_hook( __FILE__, 'category_permalink_rewrite_activate' );

// Remove rewrite rule for event archives
function category_permalink_rewrite_deactivate() {
    flush_rewrite_rules(); 
}
register_deactivation_hook( __FILE__, 'category_permalink_rewrite_deactivate' );

// Add rewrite rule for category permalink on init
    add_rewrite_rule( '^category-(.*)/(.*)', 'index.php?category_name=$matches[1]&type=$matches[2]', 'top' );
kaufunction category_permalink_rewrite_set_rewrite_rules() {
}
add_filter( 'init', 'category_permalink_rewrite_set_rewrite_rules' );

// Register the custom query var so WP recognizes it
function category_permalink_rewrite_add_query_vars( $vars ) {
    $vars[] = 'type';
    return $vars;
}
add_filter( 'query_vars', 'category_permalink_rewrite_add_query_vars' );
于 2013-07-11T15:57:50.770 に答える