如何在woocommerce页面上添加编辑链接?
问题描述:
我正在尝试将编辑链接添加到我的woocommerce页面以及归档页面上的所有产品。如何在woocommerce页面上添加编辑链接?
对于页面本身,我尝试这样做:
add_filter('woocommerce_before_shop_loop', 'woo_page_edit_link', 10);
function woo_page_edit_link() {
edit_post_link('e', '', '');
}
但不是页面ID,我总是列出的第一个产品的ID。
对于循环,我想这一点:
add_filter('woocommerce_before_shop_loop_item' , 'woo_item_edit_link');
function woo_item_edit_link() {
edit_post_link('e', '', '');
}
但始终编辑链接被嵌套内店项目链接。
任何想法如何解决这两个问题?
答
woocommerce_before_shop_loop
在循环标记之前,但产品查询已经建立,所以当前的$post
是第一个产品。您可以使用edit_post_link()
的第4个参数来定义特定的页面ID。 WooCommerce有一个内置函数来获取它的自定义页面的页面ID。因为所以,如果你把你的功能在同一个(或更高版本)的优先级,你就有可能被链接内woocommerce_template_loop_product_link_open()
钩住woocommerce_before_shop_loop_item
与10优先级的内部链接
add_filter('woocommerce_before_shop_loop', 'woo_page_edit_link', 10);
function woo_page_edit_link() {
edit_post_link('edit shop', '', '', wc_get_page_id('shop'));
}
而且你的项目编辑链接出现。为了解决这个问题,你可以使用如下的早期优先级。
add_filter('woocommerce_before_shop_loop_item' , 'woo_item_edit_link', 5);
function woo_item_edit_link() {
edit_post_link('edit product');
}