我正在使用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>
我正在使用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>
在您的 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;
}
如果您需要为每个链接添加面包屑名称特定的 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);
}
你的评论有效。
//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);
}