Contents ...
udn網路城邦
Wordpress 將反引號轉換為行內代碼,無需插件
2023/08/13 08:15
瀏覽51
迴響0
推薦0
引用0


複製以下代碼進functions.php即可。
function my_custom_content_filter( $content ) 
$code_content = preg_replace('/`([^`]+)`/', '$1', $content);
return $code_content;

add_filter( 'the_content', 'my_custom_content_filter', 1 );

以下是代碼的具體解釋和實現原理:

  1. my_custom_content_filter() 函數接受一個字串作為參數 $content,這個字串通常是文章的內容。

  2. preg_replace() 函數使用正則表達式 /([^]+)/來匹配使用反引號括起來的文字,其中[^]+ 表示匹配任何不是反引號的字符,() 表示將匹配的結果捕獲為一個分組。

  3. $1 是替換文本,其中 $1 表示匹配的第一個分組,這裡是使用反引號括起來的文字。這個替換文本將匹配的文字替換為一個標籤,並為其定義了一些樣式。

  4. preg_replace() 函數返回替換後的結果,將其賦值給 $code_content 變數。

  5. my_custom_content_filter() 函數最終返回 $code_content 變數,這就是經過處理後的文章內容。

  6. add_filter( 'the_content', 'my_custom_content_filter', 1 ) 語句將 my_custom_content_filter() 函數添加為the_content過濾器的一部分,這意味著在顯示文章內容時,WordPress將自動應用這個過濾器,將文章中使用反引號括起來的文字轉換為標籤。


總體來說,這個代碼是使用PHP的正則表達式來解析文章內容,將其中的代碼片段轉換為HTML的標籤,以便更好地顯示程式碼。

已知問題

  1. 如果主題或插件自帶處理的,建議修改成

  2. 文章如果出現單個反引號,代碼也會處理渲染的。




原貼鏈接:https://www.booooker.com/198.html?feed_id=468&_unique_id=64d99c4fdde18&utm_source=&utm_medium=ibook&utm_campaign=booooker

限會員,要發表迴響,請先登入