【问题标题】:Rename the 'Shop' Breadcrumb and change the link in Woocommerce重命名“商店”面包屑并更改 Woocommerce 中的链接
【发布时间】:2018-03-30 16:43:31
【问题描述】:

我尝试使用下面的代码来更改“商店”一词的 URL,但它似乎什么也没做:

add_filter( 'woocommerce_page_title', 'woo_shop_page_title');
function woo_shop_page_title( $page_title ) {
       if( 'Shop' == $page_title) {
              return "My new title";
       }
}

我不希望用户进入主“商店”页面并设置许多类别。 不幸的是,我无法找到删除或更改该“商店”面包屑的 URL 的方法。 official docs 只提到如何更改“主页”URL,而不是“商店”。

感谢您的帮助。

【问题讨论】:

  • 我认为,面包屑来自你的主题,所以应该挂钩一些主题功能

标签: php wordpress woocommerce breadcrumbs shop


【解决方案1】:

重命名任何面包屑项目并更改其链接,请以这种方式使用woocommerce_get_breadcrumb过滤钩子:

add_filter( 'woocommerce_get_breadcrumb', 'custom_get_breadcrumb', 20, 2 );
function custom_get_breadcrumb( $crumbs, $breadcrumb ){
    if( ! is_shop() ) return $crumbs; // Only shop page

    // The Crump item to target
    $target = __( 'Shop', 'woocommerce' );

    foreach($crumbs as $key => $crumb){
        if( $target === $crumb[0] ){
            // 1. Change name
            $crumbs[$key][0] = __( 'Name', 'woocommerce' );

            // 2. Change URL (you can also use get_permalink( $id ) with the post Id
            $crumbs[$key][1] = home_url( '/my-link/' );
        }
    }
    return $crumbs;
}

代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

【讨论】:

  • 不幸的是,这不起作用。该网站只是在加载时卡住了。我的控制台上没有错误。是否取决于主题?
  • @viriato 抱歉,这段代码可以正常工作,并且取决于您的主题自定义(而且有些插件可能会造成麻烦)。我刚刚在店面主题和 woocommerce 最新版本上再次对其进行了测试。它不会抛出任何错误......所以请你下次评论它不能“使用你的主题”时说......
【解决方案2】:

请在 home replace Start chenag in woocommerce 中检查此代码

函数 woocommerce_breadcrumb( $args = array() ) { $args = wp_parse_args($args,apply_filters('woocommerce_breadcrumb_defaults',数组( '分隔符' => ' / ', 'wrap_before' => '', 'wrap_after' => '', '之前' => '', '之后' => '', '家' => _x('家', '面包屑', 'woocommerce' ), ) ) );

    $breadcrumbs = new WC_Breadcrumb();
    $args['home'] = "Start"; // home replace start set
    if ( ! empty( $args['home'] ) ) {
        $breadcrumbs->add_crumb( $args['home'], apply_filters( 'woocommerce_breadcrumb_home_url', home_url() ) );
    }

    $args['breadcrumb'] = $breadcrumbs->generate();

【讨论】:

    【解决方案3】:

    “商店”面包屑来自您的“商店”页面。只需将您的商店页面 slug 更改为您想要的任何内容,或者如果它完全是另一个页面,则在 woocommerce 设置中将商店页面设置为新页面。 url 永远是页面的 slug。

    【讨论】:

    • 真的没有帮助的答案。这是一个众所周知的设置,可能有很多原因导致不想使用该设置。因此,您建议的解决方案是一个非常无用的答案可能有很多原因。
    猜你喜欢
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    相关资源
    最近更新 更多