Yoast SEO 麵包屑路徑,刪除最後一個節點

Yoast SEO 這個百萬活躍用戶級的插件,這我就不多做介紹了,Yoast SEO 中提供了麵包屑路徑這個功能,這是一個很好用的功能,不過卻沒有太多選項,我不知道是否是免費版的關係,目遇到一個問題,麵包屑路徑會連同當前這個頁面的標題也顯示出來,這就比較困擾了,如此會造成頁面標題重複且雜亂。

下圖是很普遍的編排方式,下方顯示當前頁面標題,上方則顯示麵包屑路徑,麵包屑方便使用者了解這頁面或文章的階層結構,但我覺得在最後一個節點顯示「當前」的頁面標題很怪,會與下方頁面標題重複,邏輯上,我已經在這頁了,應該不用顯示這標題才對,只要方便我返回此文章的列表頁就可以了,如下圖所示 ( 標題文字為假字 )

因此,我打算把最後的節點刪除或隱藏,有 3 種方式:

  1. CSS 方式隱藏
  2. JavaScript 隱藏
  3. 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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料