所以Yoast SEO插件在Wordpress中提供了一些方便的东西,其中一个是Breadcrumb功能,但是标记输出在span标签内(我为URL添加了# - 不用担心)...
<span xmlns:v="http://rdf.data-vocabulary.org/#">
<span typeof="v:Breadcrumb">
<a property="v:title" rel="v:url" href="#">Home</a>
</span>
<span typeof="v:Breadcrumb">
<a property="v:title" rel="v:url" href="#">Our Services</a>
</span>
<span typeof="v:Breadcrumb">
<a property="v:title" rel="v:url" href="#">GP Services</a>
</span>
<span typeof="v:Breadcrumb">
<span property="v:title" class="breadcrumb_last">GP Appointments</span>
</span>
</span>
我想输出breadrcumbs作为列表而不是这些跨度 - 所以最终我想我需要在我的functions.php文件中添加某种过滤器 - 所以当我更新Yoast SEO插件时它没有覆盖我的编辑。
在&#34; /plugins/wordpress-seo/frontend/class-breadcrumbs.php"在开头有一些代码可以设置元素的包装。
目前(减去评论和不相关的代码位):
if ( ! class_exists( 'WPSEO_Breadcrumbs' ) ) {
class WPSEO_Breadcrumbs {
private $element = 'span';
所以这是我需要用我主题的functions.php文件覆盖的部分。
我为了如何做到这一点而努力争取标记。
此插件文件中似乎也有一个过滤器:
private function filter_wrapper() {
$wrapper = apply_filters( 'wpseo_breadcrumb_output_wrapper', $this->wrapper );
$wrapper = tag_escape( $wrapper );
if ( is_string( $wrapper ) && '' !== $wrapper ) {
$this->wrapper = $wrapper;
}
}
非常感谢任何帮助。
答案 0 :(得分:1)
我相信我找到了一个解决方案 - 我的执行:
的functions.php
function get_breadcrumb() {
if ( function_exists('yoast_breadcrumb') ) {
yoast_breadcrumb('<ol class="article__bread-crumb"><li>','</li></ol>');
}
}
然后我在主题中的任何地方打电话给get_breadcrumb()
。
然后在yoast设置中,将“breadcrumbs之间的分隔符”选项设置为:
</li><li>
结果代码应该像这样结束:
<ol class="article__bread-crumb">
<li>
<span xmlns:v="http://rdf.data-vocabulary.org/#">
<span typeof="v:Breadcrumb">
<a href="[URL]/velonews" rel="v:url" property="v:title">Home</a>
</span>
</span>
</li>
<li>
<span rel="v:child" typeof="v:Breadcrumb">
<a href="[URL]/velonews/all" rel="v:url" property="v:title">All</a>
</span>
</li>
<li>
<span rel="v:child" typeof="v:Breadcrumb">
<a href="[URL]/velonews/category/news" rel="v:url" property="v:title">News</a>
</span>
</li>
<li>
<span class="breadcrumb_last">Related Test</span>
</li>
</ol>
答案 1 :(得分:0)
我没有找到一种简单的方法来做到这一点,所以我最后只是改变我的CSS样式来解释这样一个事实:元素不是无序列表,而是嵌套的跨度和链接 - 而不是结束可悲的是,这个世界,以及各种各样的解决方案,但并不是我想到的解决方案。
我确定有办法做到这一点 - 但如果没有帮助,我会挣扎。