0

URL の末尾にいくつかの変数を追加するページ テンプレートがあるので、渡されたものに基づいてデータを表示できます。

例: mysite.com/search-listins/listing/?address=123+The+Street&mls-number=00000

これをきれいなパーマリンクに変換する必要があります。このようなもの:

mysite.com/search-listings/listing/123-The-Street または mysite.com/search-listings/listing/00000-123-The-Street

この機能を使ってみました。しかし、何も機能していないようです。何かご意見は?これらはカスタム投稿タイプからのものではありません。ご覧のとおり、これらはカスタム投稿タイプではありません。これらは wp_ テーブルの外にある MLS アイテムです。

関数:

 function setup_filter_rewrites(){
     add_rewrite_rule('search-listings/listing/([^/]*)/?', 'index.php?pagename=search-     listings/listing/?address=$matches[1]&mls-number=$matches[2]', 'top');
 }
 add_action( 'init', 'setup_filter_rewrites' );

 function setup_filter_query_vars( $query_vars ){
     $query_vars[] = 'listing';
     return $query_vars;
 }
 add_filter( 'query_vars', 'setup_filter_query_vars' );`
4

1 に答える 1

0

add_rewrite_rule() 関数の代わりに、常に次のコードを使用しています。

add_filter( 'query_vars', 'my_query_vars' );
function dlouhavidea_query_vars( $vars ) {
    $vars[] = 'address';
    $vars[] = 'miles';    
    return $vars;
}

add_action( 'generate_rewrite_rules', 'my_rewrite_rules' );
function ,y_rewrite_rules( $wp_rewrite )
{
    $wp_rewrite->rules = array(
        'search-listings/listing/address/?([^/]*)/?$' => $wp_rewrite->index . '?pagename=search-listings&address=' . $wp_rewrite->preg_index( 1 ),
        'search-listings/listing/miles/?([0-9]{1,})/?$' => $wp_rewrite->index . '?pagename=search-listings&miles=' . $wp_rewrite->preg_index( 1 )       
    ) + $wp_rewrite->rules;
}

get_query_var('address') および get_query_var('miles'); で変数を見つけることができます。

于 2013-01-29T17:08:29.823 に答える