重定向WooCommerce单一产品页面

时间:2018-11-20 作者:agahi

我的问题涉及Woocommerce插件。

如您所知,我们可以创建自定义single-page.php 在我们提供的主题中,它位于woocommerce子文件夹中。

我需要的是single-product.php 我的插件中的文件。

我已经尝试了很多方法,它适用于其他页面,例如我可以重定向single-product/title.php 转到另一页,但我没有运气重定向single-product.php.

我知道我可能可以通过httaccess文件重定向它,但我需要的是通过插件重定向文件。

woocommerce似乎在之后指定了模板文件template_include

到目前为止,我设法使用woocommerce_locate_template 筛选器重定向到某些文件,但对于single-product.php 似乎有一个完全不同的故事。

你知道我怎样才能拥有自己的单一产品吗。php内置自定义插件?

更新:我尝试了以下答案之一给出的解决方案:

add_filter(\'single_template\', \'my_custom_template\');
function my_custom_template($single) {
    global $post;
    if ( $post->post_type == \'product\' ) {
        echo \'test\';// So its here
        return plugin_dir_url( __FILE__ ).\'woocommerce/single-product.php\';
    }
    return $single;
}
单一产品页面仍会转到默认的woocommerce模板页面。

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

根据本帖(https://stackoverflow.com/questions/43621049/woocommerce-multiple-single-product-templates-using-single-product-php-to-redire) 我会将您的代码更新为如下所示:

function so_43621049_template_include( $template ) {
  if ( is_singular(\'product\') ) {
    $template = plugin_dir_path( __FILE__ ).\'woocommerce/single-product.php\';
  } 
  return $template;
}
add_filter( \'template_include\', \'so_43621049_template_include\', 20 );
我还没有机会测试这个,但我相信它会起作用的。

结束

相关推荐