我的公司一直在为WordPress / Genesis构建我们自己的子主题,我们将其作为所有客户的标准使用 . 对于搜索引擎优化,我们有时会有更长的页面 Headers 在面包屑中看起来不太好 . 即“Sometown的砖服务” . 最终看起来像这样:
Home / Brick Services In Sometown / Acme Bricks
我们想要做的是能够在页面/帖子编辑器上有一个字段,允许我们输入面包屑的自定义文本,所以它看起来像:
Home / Services / Acme Bricks
我知道如何将相应的元框添加到后端并将输入的信息添加到帖子/页面元数据中,但我看到使用这些额外数据完成面包屑的唯一方法是编辑Genesis核心主题文件,我不想做 . 我想在儿童主题中实现这一点,因此更新不是麻烦 .
如果我要编辑Genesis核心breadcrumb.php文件,我会做类似的事情:
$ub_breadcrumb = esc_html( get_post_meta( $post->ID, '_ub_breadcrumb', TRUE ) );
if ( !empty( $ub_breadcrumb )) {
//* Add the custom page title for breadcrumbs if value is set
$crumbs[] = $ub_breadcrumb;
} else {
//* Add the current page title
$crumbs[] = get_the_title( $post->ID );
}
这是来自第363行的genesis / lib / classes / breadcrumb.php核心文件 . 我也会为上面部分中当前页面/帖子的祖先做类似的事情 .
有没有其他方法可以在不编辑核心主题文件的情况下完成此任务我们试图将这一切保留在子主题中,因此它是更新证明(无论如何都可以) .
谢谢 . 对谷歌来说这是一件奇怪的事情,所以除了Genesis中的内置面包屑过滤器之外我还没有找到任何东西,但是那些不包括帖子/页面 Headers .
2 回答
我有一段时间没有更新它,但你可能想给我的插件:
https://github.com/GaryJones/genesis-single-breadcrumbs
这是一个部分答案:在子主题(而不是父主题)的functions.php文件中,您可以从面包屑中删除帖子 Headers :
来自http://www.billerickson.net/code/remove-post-title-from-breadcrumb/
有了这个,我想你可以删除默认的帖子 Headers ,然后 - 在同一个函数中 - 检查是否存在一个不同的帖子 Headers 从元框或该帖子的自定义字段,我假设,帖子ID,如果存在,请将其归还 .
另请参阅http://rickrduncan.com/wordpress/customize-genesis-breadcrumb以获取核心函数中所有默认参数的参考: