自定义固定链接和筛选器?

时间:2014-08-05 作者:thebluefox

好的,我添加了一个定制的永久链接,它可以很好地映射到我的页面。对于某些区域,虽然我添加的过滤器没有显示出来。在短代码中,它们只是作为NULL返回。

我的代码是;

function custom_rewrite( $wp_rewrite ) {
$feed_rules = array(
    \'local/(.*?)/(.*?)/?$\'  =>  \'index.php?page_id=41&trade=\' . $wp_rewrite->preg_index(1).\'&area=\' . $wp_rewrite->preg_index(2),
    \'local/(.*?)/(.*?)?$\'  =>  \'index.php?page_id=41&trade=\' . $wp_rewrite->preg_index(1).\'&area=\' . $wp_rewrite->preg_index(2),
);
$wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}

function custom_wp_querystring() {
add_rewrite_tag(\'%trade%\',\'([^&]+)\');
add_rewrite_tag(\'%area%\',\'([^&]+)\');
}
add_action( \'init\', \'custom_wp_querystring\');
add_filter( \'generate_rewrite_rules\', \'custom_rewrite\' );

add_shortcode(\'rewrite_local\', \'rewriteShortcode\');

function rewriteShortcode() {
echo "vars are";
var_dump($wp_query->query_vars[\'trade\']);
var_dump($wp_query->query_vars[\'area\']);
}
是不是我错过了一些简单的事情?

1 个回复
SO网友:JasonC

也许在custom_rewrite 函数,尝试连接$wp_rewrite->rules$feed_rules 使用array_merge, 然后返回$wp_rewrite.

function custom_rewrite( $wp_rewrite ) {
  $feed_rules = array(
    \'local/(.*?)/(.*?)/?$\'  =>  \'index.php?page_id=41&trade=\' . $wp_rewrite->preg_index(1).\'&area=\' . $wp_rewrite->preg_index(2),
    \'local/(.*?)/(.*?)?$\'  =>  \'index.php?page_id=41&trade=\' . $wp_rewrite->preg_index(1).\'&area=\' . $wp_rewrite->preg_index(2),
  );
  $wp_rewrite->rules = array_merge($feed_rules, $wp_rewrite->rules);
  return $wp_rewrite;
}
我根本没有测试过,只是一个建议。

结束

相关推荐

Custom fields in Permalinks?

我想知道如何将自定义字段值添加到自定义帖子类型的永久链接中?例如,我有自定义的post文件ex:cpt cities。php,它处理注册自定义帖子类型和所有这些细节。在该文件中,我试图将其永久链接设置为包含一个“cities”自定义字段值。我可以使用add\\u permastruct设置永久链接。但是,我无法获取自定义字段的值,并且get\\u post\\u meta()不起作用。这可能是由于$post->ID不起作用(因为它位于自定义post类型文件中,而不是post循环)。有人知道这样一种在