我在 WordPress 上使用 WooCommerce,它将产品和产品类别添加到
URLs.
http://dev.unwaveringmedia.com/8dim/product-category/all-party-supplies/ http://dev.unwaveringmedia.com/8dim/product/14-snowman-serving-tray/
我需要从 URL 中删除“产品”和“产品类别”。有什么方法可以修改永久链接并删除它们吗?
是的。但请先阅读这篇文章https://docs.woocommerce.com/document/removing-product-product-category-or-shop-from-the-urls/
您可以通过以下方式更改此设置:
您可以在“设置”>“永久链接”>“可选”>“产品类别基础= ./”中更改永久链接(在“产品类别基础”中键入 ./)。
确保您没有任何页面、帖子或附件与类别页面具有相同名称(slug),否则它们会发生冲突,并且代码将无法工作。
安装并激活以下插件:
(更多信息请参见https://timersys.com/remove-product-category-slug-woocommerce/)
`
<?php
/*
Plugin Name: Remove product-category slug
Plugin URI: https://timersys.com/
Description: Check if url slug matches a woocommerce product category and use it instead
Version: 0.1
Author: Timersys
License: GPLv2 or later
*/
add_filter('request', function( $vars ) {
global $wpdb;
if( ! empty( $vars['pagename'] ) || ! empty( $vars['category_name'] ) || ! empty( $vars['name'] ) || ! empty( $vars['attachment'] ) ) {
$slug = ! empty( $vars['pagename'] ) ? $vars['pagename'] : ( ! empty( $vars['name'] ) ? $vars['name'] : ( !empty( $vars['category_name'] ) ? $vars['category_name'] : $vars['attachment'] ) );
$exists = $wpdb->get_var( $wpdb->prepare( "SELECT t.term_id FROM $wpdb->terms t LEFT JOIN $wpdb->term_taxonomy tt ON tt.term_id = t.term_id WHERE tt.taxonomy = 'product_cat' AND t.slug = %s" ,array( $slug )));
if( $exists ){
$old_vars = $vars;
$vars = array('product_cat' => $slug );
if ( !empty( $old_vars['paged'] ) || !empty( $old_vars['page'] ) )
$vars['paged'] = ! empty( $old_vars['paged'] ) ? $old_vars['paged'] : $old_vars['page'];
if ( !empty( $old_vars['orderby'] ) )
$vars['orderby'] = $old_vars['orderby'];
if ( !empty( $old_vars['order'] ) )
$vars['order'] = $old_vars['order'];
}
}
return $vars;
});`
欲了解更多信息,请参阅https://timersys.com/remove-product-category-slug-woocommerce/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)