Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WoodCommerce属性的WordPress URL重写_Wordpress_Url_Mod Rewrite_Seo_Woocommerce - Fatal编程技术网

WoodCommerce属性的WordPress URL重写

WoodCommerce属性的WordPress URL重写,wordpress,url,mod-rewrite,seo,woocommerce,Wordpress,Url,Mod Rewrite,Seo,Woocommerce,我使用WooCommerce和“YITH WooCommerce Ajax导航”插件来过滤品牌。结果是一个链接显示为https://example.com/products/racquets/tennis-racquets/?filter_brands=47 理想情况下,我希望使用https://example.com/products/racquets/tennis-racquets/brands/wilson 我尝试过使用Apache mod_重写规则,例如: RewriteRule ^pr

我使用WooCommerce和“YITH WooCommerce Ajax导航”插件来过滤品牌。结果是一个链接显示为
https://example.com/products/racquets/tennis-racquets/?filter_brands=47
理想情况下,我希望使用
https://example.com/products/racquets/tennis-racquets/brands/wilson

我尝试过使用Apache mod_重写规则,例如:

RewriteRule ^products/racquets/tennis-racquets/?filter_brands=47 /products/racquets/tennis-racquets/wilson [QSA,L]
我还尝试过为
functions.php
文件编写函数,但这两种方法似乎都不适用。下面是我尝试使用的代码示例

function brand_rewrite_rules() {
    add_rewrite_rule( 'products/racquets/tennis-racquets/?filter_brands=47', 'products/racquets/tennis-racquets/wilson', 'top' );
    flush_rewrite_rules();
} 
add_action( 'init', 'brand_rewrite_rules' );
我确实尝试过更新我的永久链接设置,但该函数没有做任何事情。有人能提出解决方案吗?

只需添加一个:

添加端点会为提供的位掩码指定的每个匹配位置创建额外的重写规则。还将创建一个与端点同名的新查询变量。端点定义后面的字符串提供此查询变量的值(例如,
“/foo/bar/”
变为
“?foo=bar”

<?php
/**
 * Plugin Name: Add a Brand endpoint to the URLs
 * Plugin URI:  http://stackoverflow.com/a/24331768/1287812
 */

add_action( 'init', function()
{
    add_rewrite_endpoint( 'brands', EP_ALL );
});

add_filter( 'query_vars', function( $vars )
{
    $vars[] = 'brands';
    return $vars;
});

/**
 * Refresh permalinks on plugin activation
 * Source: http://wordpress.stackexchange.com/a/108517/12615 
 */
function WCM_Setup_Demo_on_activation()
{
    if ( ! current_user_can( 'activate_plugins' ) )
        return;

    $plugin = isset( $_REQUEST['plugin'] ) ? $_REQUEST['plugin'] : '';
    check_admin_referer( "activate-plugin_{$plugin}" );

    add_rewrite_endpoint( 'brands', EP_ALL ); #source: http://wordpress.stackexchange.com/a/118694/12615
    flush_rewrite_rules();
}
register_activation_hook(   __FILE__, 'WCM_Setup_Demo_on_activation' );
$brand = get_query_var('brand') ? urldecode( get_query_var('brand') ) : 'Empty endpoint';
echo $brand;