Woocommerce:当类别只包含一个项目时,如何直接跳转到产品页面

时间:2016-01-26 10:49:38

标签: wordpress woocommerce

我有一个顶级菜单,可以显示产品类别。 在这种情况下,我销售的应用程序的名称。

单击此菜单项时,它会显示该类别的内容 - 应该这样做。

但是,由于此类别只包含一个项目,我想直接跳转到产品页面,而不是显示包含一个项目的类别页面。

以下是相关网页的链接:boutique.zimrahapp.com/categorie-produit/app/

我无法找到可以调整输出或重定向的钩子或模板。

这种事情已经完成了吗?

2 个答案:

答案 0 :(得分:3)

以上代码对我不起作用。我有一个有效的解决方案,但它重定向所有单个归档结果。在我的情况下,我也希望重定向单个标签。

/* Redirect if there is only one product in the category or tag, or anywhere... */

function redirect_to_single_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_safe_redirect($post_url , 302 );
 exit;
}
} 
add_action('template_redirect', 'redirect_to_single_post');

我在这里问了同样的问题:Woocommerce: How to automatically redirect to the single product if there is only one product on a category page?

答案 1 :(得分:2)

WooCommerce将只有一个结果的搜索查询重定向到该结果。你可以看到他们是如何做到的here

修改他们的代码你得到这样的东西:

function so_35012094_template_redirect() {
    global $wp_query;

    // Redirect to the product page if we have a single product
    if ( is_product_category() && 1 === $wp_query->found_posts ) {
        $product = wc_get_product( $wp_query->post );
        if ( $product && $product->is_visible() ) {
            wp_safe_redirect( get_permalink( $product->id ), 302 );
            exit;
        }
    }

}
add_action( 'template_redirect', 'so_35012094_template_redirect' );

未经测试,因此注意复制/粘贴失败。始终使用WP_DEBUG,以便找出问题所在。