在 WooCommerce 的产品网址中仅使用 ID?

Posted

技术标签:

【中文标题】在 WooCommerce 的产品网址中仅使用 ID?【英文标题】:Using only ID in product url in WooCommerce? 【发布时间】:2022-01-23 19:27:13 【问题描述】:

我想这样做的原因是非英文产品标题会自动在 slug 中使用,它会呈现带有百分号的非常长的 URL,例如/product/%e9%97%bb%e7%a8%bf%e5%8f%91%e5%b8%83/,看起来一点也不好看,尤其是作为 URL 共享时,有时冗长不方便。

因此,在诸如/product/1178/ 之类的 URL 中仅使用产品 ID 似乎要好得多

四处搜索,从未发现任何相关内容。尝试设置 > 永久链接 > 产品永久链接 > 自定义基础 = "/product/%post_id%/" 但 slug 仍附加为 /product/1178/%e9%97%bb%e7%a8%bf%e5%8f%91%e5%b8%83/

有没有办法以编程方式做到这一点?

找到this answer,是否将其修改为用于 WooCommerce 产品,以便在创建产品时将产品 ID 用于 slug?

【问题讨论】:

【参考方案1】:

这对我有用。现在,每次我创建新产品时,产品 ID 都是产品标签。

add_action( 'save_post_product', 'wpse251743_set_title', 10, 3 );
function wpse251743_set_title ( $post_id )
    //This temporarily removes action to prevent infinite loops
    remove_action( 'save_post_product', 'wpse251743_set_title' );
    //update title
    wp_update_post( array(
        'ID'        => $post_id,
        'post_name' =>  $post_id, //Wordpress would generate the slug based on the post name
    ));
    //redo action
    add_action( 'save_post_product', 'wpse251743_set_title', 10, 3 );

【讨论】:

以上是关于在 WooCommerce 的产品网址中仅使用 ID?的主要内容,如果未能解决你的问题,请参考以下文章

在 Woocommerce 中仅向 PayPal 发送订单号而不是商品名称

在 Woocommerce wc_get_loop_prop 产品循环中仅包含某些类别

更新 Woocommerce 3 中的产品可见性

在颤振中显示仅产品名称的列表,使用json格式的woocommerce api数据

如何获取 Woocommerce 产品库图片 URL? [关闭]

插件:Woocommerce > 如何允许作者将产品添加到购物车