WP_safe_redirect not working

时间:2020-09-17 作者:clayRay

而不是Divi主题中的项目档案/project_category/[category name]/ 我想让他们去/portfolios/#[category name].

我修改了以下代码this question 并将其添加到我的孩子主题中functions.php 文件

function my_category_redirect()
{
    if ( is_category( ) ) {
        $category = get_queried_object();
        $cat_id = $category->term_id;
        $url = site_url( \'/portfolios/#\' . $cat_id);
        wp_safe_redirect( $url, 301 );
        exit();
    }
}
add_action( \'template_redirect\', \'my_category_redirect\' );
但是,这不起作用。项目类别仍将/project_category/[category name]/. 我不知道my_category_redirect 函数甚至被调用。

非常感谢您的帮助!

1 个回复
最合适的回答,由SO网友:Antti Koskinen 整理而成

您的操作回调可能会被调用,但可能是if语句失败了。是否使用默认值;“类别”;分类法(即Dashboard>;Posts>;Categories)或自定义分类法(即Dashboard>;{my post type}>;{my taxonomy})作为项目类别?

如果您使用的是自定义分类法,那么应该使用is_tax(\'my-taxonomy\') 而不是is_category() 因为后者检查的是默认类别,而不是自定义类别。

但是,您可以临时添加die(\'it works\'); 也可以在if语句之前访问回调,以验证是否调用了它。

相关推荐

扩展WooCommerce小部件类-WC_Widget_Product_Categories

我正在尝试扩展woocommerce类,该类用于在我自己的插件中创建产品类别小部件,该插件为woo commerce产品添加了一个称为“部门”的新分类法。当我扩展WP\\u小部件时,一切正常,我看到一个新的小部件,可以添加到外观->小部件中。然而,当我试图扩展WC\\u Widget或WC\\u Widget\\u Product\\u类别时,我根本看不到新的Widget,即使我没有收到任何php错误。以下是我所拥有的不起作用的东西://get the base classes if(!cl