亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP函數編輯wordpress標題標簽

PHP函數編輯wordpress標題標簽

PHP
茅侃侃 2023-09-08 18:22:34
由于管理員錯誤,我的 WordPress/woocommerce 網站上的某些產品標題標簽有 .co.uk 兩次 - 例如“產品名稱 | ” mysite.co.uk.co.uk'。我做了一些研究,我想我需要使用 PHP 函數和過濾器str_replace來解決這個問題。這是我到目前為止所擁有的。我哪里出錯了?我認為我獲取標題并更改它而不是字符串替換本身是錯誤的。add_filter( 'wp_title', 'custom_title', 10, 2 );function custom_title( $title, $post_id ){    $post_type = get_post_field( 'post_type', $post_id, true );    if( $post_type == 'product' || $post_type == 'product_variation' ){        $title = get_the_title( $post_id );        $title = str_replace(" .co.uk", '', $title);    }    return $title;}提前致謝
查看完整描述

1 回答

?
慕的地10843

TA貢獻1785條經驗 獲得超8個贊

我認為您的問題可能是$post_id沒有正確定義或沒有傳遞給回調。另請注意,wp_title自 WordPress 4.4 起已棄用,并且不適用于 5.4。

無論如何,WordPress 有一個get_post_type()函數,可以簡化事情。大多數 WordPress 功能不需要帖子 ID,它們將默認為全局$post對象。

add_filter('pre_get_document_title', function($title) {

? ? $postType = get_post_type();

? ? if( $postType === 'product' || $postType === 'product_variation') {

? ? ? ? $title = str_replace(' .co.uk', '', get_the_title());

? ? }

? ? return $title;

}, 99);

正如您在下面所說的,帖子標題已手動更新,并.co.uk在 Yoast SEO 片段標題中添加了附加內容。


假設您有權訪問數據庫,糾正此問題的最佳方法是更新標題,完全消除問題,而不是嘗試對其進行修復。


Yoast 將其標題存儲在postmetaWordPress 數據庫的表中,鍵為_yoast_wpseo_title。要替換.co.uk這些標題中的所有添加內容,您可以運行如下查詢:


UPDATE `database_name`.`postmeta`

SET meta_value = REPLACE(meta_value, ' .co.uk', '')

WHERE meta_key = '_yoast_wpseo_title'

確保更改上面的查詢,以便這database_name是 WP 數據庫的正確名稱,如果數據庫表名稱有前綴,也請設置正確的表名稱postmeta。


查看完整回答
反對 回復 2023-09-08
  • 1 回答
  • 0 關注
  • 101 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號