Yoast SEO 這個百萬活躍用戶級的插件,這我就不多做介紹了,Yoast SEO 中提供了麵包屑路徑這個功能,這是一個很好用的功能,不過卻沒有太多選項,我不知道是否是免費版的關係,目遇到一個問題,麵包屑路徑會連同當前這個頁面的標題也顯示出來,這就比較困擾了,如此會造成頁面標題重複且雜亂。
下圖是很普遍的編排方式,下方顯示當前頁面標題,上方則顯示麵包屑路徑,麵包屑方便使用者了解這頁面或文章的階層結構,但我覺得在最後一個節點顯示「當前」的頁面標題很怪,會與下方頁面標題重複,邏輯上,我已經在這頁了,應該不用顯示這標題才對,只要方便我返回此文章的列表頁就可以了,如下圖所示 ( 標題文字為假字 )
因此,我打算把最後的節點刪除或隱藏,有 3 種方式:
- CSS 方式隱藏
- JavaScript 隱藏
- PHP 方式刪除
起初嘗試用 CSS 來隱藏,的確成功把最後節點標題隱藏,但分隔兩個節點中間的左斜線沒有被刪除,而且這個斜線並沒有包裹在標籤中,所以無法用 CSS 隱藏最後一個斜線;第2種方法用 JavaScript 去隱藏,但我很擔心後續維護不易,最後我選用第 3 種方式達成,直接完美刪除最後一個節點,如下圖:
可以將下列程式碼貼到當前主題根目錄中的 functions.php 檔案,就可以達成囉
/**
* Yoast SEO 麵包屑路徑,刪除最後一個節點
* @see https://v123.tw/yoast-seo-breadcrumbs-remove-current-post
*/
add_filter('wpseo_breadcrumb_single_link', 'remove_breadcrumb_title' );
function remove_breadcrumb_title( $link_output) {
if(strpos( $link_output, 'breadcrumb_last' ) !== false ) {
$link_output = '';
}
return $link_output;
}
refrence:
https://wordpress.org/support/topic/any-way-to-remove-title-of-current-post-in-breadcrumbs/
https://generatepress.com/forums/topic/how-to-hide-the-title-part-in-the-breadcrumb-im-using-yoast-seo/#post-614239