如何在woocommerce页面上添加编辑链接?

时间:2016-12-31 11:00:24

标签: woocommerce wordpress-theming

我正在尝试添加编辑链接到我的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', '', '' );
}

但是编辑链接总是在商店商品链接中嵌套

任何想法如何解决这两个问题?

1 个答案:

答案 0 :(得分:1)

woocommerce_before_shop_loop在循环标记之前,但已经设置了产品查询,因此当前$post用于第一个产品。您可以使用edit_post_link()的第4个参数来定义特定的页面ID。 WooCommerce有一个内置函数,用于获取其自定义页面的页面ID。

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' ) );
}

您的项目编辑链接会显示在链接中,因为woocommerce_template_loop_product_link_open()已挂钩到woocommerce_before_shop_loop_item,优先级为10.因此,如果您在相同(或更高)优先级上添加您的功能,则可能会在链接里面。要解决此问题,您可以使用下面的早期优先级。

add_filter('woocommerce_before_shop_loop_item' , 'woo_item_edit_link', 5);

function woo_item_edit_link() {
    edit_post_link( 'edit product' );
}