2

我正在使用Yoast Wordpress 插件和它提供的面包屑功能。它工作得很好,但我想修改默认结构并添加一个额外的类。

所以而不是:

<a href="http://www.example.com" rel="v:url" property="v:title">Home</a>

我想做:

<a href="http://www.example.com" class="my-class" rel="v:url" property="v:title">Home</a>
4

3 回答 3

4

在您的 function.php 文件中尝试以下代码,您可以在其中将自定义类添加到面包屑。

add_filter( 'wpseo_breadcrumb_single_link', 'ss_breadcrumb_single_link', 10, 2 );
function ss_breadcrumb_single_link( $link_output, $link ) {
$element = '';
$element = esc_attr( apply_filters( 'wpseo_breadcrumb_single_link_wrapper', $element ) );
$link_output =  $element;

if ( isset( $link['url'] ) ) {
    $link_output .= '<a rel="nofollow" href="' . 

 esc_url( $link['url'] ) . '" rel="v:url" property="v:title" class="my-class">' . 

 esc_html( $link['text'] ) . '</a>';
 }
 return $link_output;
}
于 2017-02-12T08:11:05.307 回答
0

如果您需要为每个链接添加面包屑名称特定的 CSS 类,您可以使用以下命令:

/**
     * Helper function which will generate a valid CSS class 
     * from a breadcrumb link text name.
     *
     * @param string $string 
     * 
     * @return void 
     */
    function cleanString($string)
    {
        $string = remove_accents($string); // WordPress internal function
        $string = strtolower($string); // convert to lower case
        $string = str_replace(' ', '-', $string); // Replaces all spaces with hyphens.
        $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
    
        return preg_replace('/-+/', '-', $string); // Replaces multiple hyphens with single one.
    }
    
    /**
     * Modifies SEO Yeast breadcrumbs links through wpseo_breadcrumb_single_link filter
     *
     * @see https://stackoverflow.com/questions/42178688/how-to-add-a-class-to-the-a-tag-in-yoast-seo-breadcrumbs
     *
     */
    add_filter('wpseo_breadcrumb_single_link', 'ss_breadcrumb_single_link', 10, 2);
    function ss_breadcrumb_single_link($link_output, $link)
    {
        $classText = cleanString($link['text']);
        return str_replace('<a', '<a class="breadcrumbs-' . $classText . '"', $link_output);
    }
于 2022-02-07T02:33:59.717 回答
0

你的评论有效。

//add class to yoast breadcrumb link
add_filter( 'wpseo_breadcrumb_single_link', 'change_breadcrumb_link_class'); 
function change_breadcrumb_link_class($link) {  
    return str_replace('<a', '<a class="my-class"', $link); 
}
于 2020-09-13T21:32:03.883 回答