Wordpress URL rewrite problem

时间:2014-02-21 作者:kat

博客com/产品/somename

在上面的URL中,我如何告诉Wordpress“product”是一个变量,“somename”是它的值。

那么,如何提取该值并在我将创建的函数中使用它呢?

简而言之,我需要:注册变量,检查变量的url,提取值,使用默认的post模板,并根据该值生成\\u内容,但只有在有值且仅针对该url的情况下。

现在,我既不能注册/提取变量(当我访问上述URL时,我得到一个404),也不能指定仅当URL包含该变量时才应替换\\u内容-它只是替换所有常规帖子上的内容。

以下是我目前的想法:

function product_rewrite_rules(){
    add_rewrite_rule(\'^product/(\\d+)/?$\',\'index.php?product=$matches[1]\',\'top\');
}
add_action( \'init\', \'product_rewrite_rules\' );


add_filter( \'query_vars\', \'setup_filter_query_vars_product\' );
function setup_filter_query_vars_product( $query_vars ){
    $query_vars[] = \'product\';
    return $query_vars;
}


function products_page () {
global $wp_query;
if( isset( $wp_query->query_vars[\'product\'] )) {
$productvalue = $wp_query->query_vars[\'product\'];

echo "product is $productvalue";
}
}
add_filter (\'the_content\', \'products_page\');  
我做错了什么?

1 个回复
SO网友:Eric Holmes

我的建议是register a custom post type. 你可以叫它products, 然后,所有放置在产品下的帖子都将获得http://domain.com/products/some-product 重写一旦成为自己的帖子类型,您可以为其指定自定义模板,single-product.php, 您可以从那里添加任何自定义字段、类等。

结束

相关推荐

如何访问调用Apply_Filters()的函数中的变量?

我试图根据调用的函数中的变量是否apply_filters() 等于特定值。该变量不会传递给apply_filters() 参数。这或许可以解释我的意思:// function in wordpress core function get_var_b() { // generating $var_a $var_a = \"a\"; // some code ... $var_b = apply_filters(\'get_var_b\