有条件地删除单个页面的 Storefront 手持菜单

Conditionally remove Storefront handheld menu for a single page

我正在尝试对代码 provided by Woocommerce 进行相对简单的修改,以使用 slug register 删除我网站单个页面上的手持式导航栏。

提供的代码片段是:

add_action( 'init', 'jk_remove_storefront_handheld_footer_bar' );

function jk_remove_storefront_handheld_footer_bar() {
  remove_action( 'storefront_footer', 'storefront_handheld_footer_bar', 999 );
}

我只想删除单个页面的菜单,所以我尝试使用 is_page 挂钩。

add_action( 'init', 'remove_storefront_handheld_footer_bar' );
function remove_storefront_handheld_footer_bar() {
    if (is_page( $page = 'register' )){
            remove_action( 'storefront_footer', 'storefront_handheld_footer_bar', 999 );
        }
}

但是,这不会删除掌上电脑菜单。如果我删除 is_page 逻辑,菜单就会消失,但这不是我需要的功能。

您可以改用 storefront_footer (相同的钩子) 具有比优先级更高的优先级 (较低的数字)remove_action() 中使用,例如:

add_action( 'storefront_footer', 'remove_storefront_handheld_footer_bar' );
function remove_storefront_handheld_footer_bar() {
    if ( is_page( 'register' ) ){
        remove_action( 'storefront_footer', 'storefront_handheld_footer_bar', 999 );
    }
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效 (具有任何特定页面 ID、名称或 slug)。您需要确保 "register" 是真实存在的 "page" 的鼻涕虫。