网址中的 Woocommerce 产品 ID

sim*_*nvk 0 wordpress woocommerce

我正在寻找一种将 Woocommerce 产品 ID 放入 URL 的方法,例如:

domain.com/product-category/id/product-title
Run Code Online (Sandbox Code Playgroud)

ID 是产品的帖子 ID,例如“12092”。由WooCommercein自动创建Wordpress

这可以以某种方式完成吗?可以轻松地通过Wordpress永久链接设置或以不同的方式通过侵入我的方式进入文件。

这几乎有效:

<?php

add_filter('post_type_link', 'wpse33551_post_type_link', 1, 3);

function wpse33551_post_type_link( $link, $post = 0 ){
if ( $post->post_type == 'product' ){
    return home_url( 'p/' . $post->ID );
} else {
    return $link;
}
}

add_action( 'init', 'wpse33551_rewrites_init' );

function wpse33551_rewrites_init(){
add_rewrite_rule(
    'product/([0-9]+)?$',
    'index.php?post_type=product&p=$matches[1]',
    'top' );
}

?>
Run Code Online (Sandbox Code Playgroud)

但输出是:

 domain.com/p/45
Run Code Online (Sandbox Code Playgroud)

我希望它是:

 domain.com/p/45/title-of-the-post
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 7

为什么这么复杂?转到设置 -> 永久链接,然后单击“基于商店的 URL”并保存。现在您可以在“自定义结构”中看到永久链接结构。它现在应该是这样的:

/shop/%product_cat%/
Run Code Online (Sandbox Code Playgroud)

现在将 post_id 添加到永久链接设置中,如下所示:

/shop/%product_cat%/%post_id%/
Run Code Online (Sandbox Code Playgroud)

保存并继续。