問題描述

我寫了一個插件,為所有 non-set(空) 標題設置默認標題,並保留手動設置的標題 (non-empty) 。

問題是當我上傳新照片 (到圖庫) 時,WordPress 默認將標題設置為文件名。如何禁用它並強制 WordPress 使用空字符串作為默認圖像標題?

最佳解決方案

您可以嘗試以下內容來清除圖像附件的標題插入但未更新:

/**
 * Empty the image attachment's title only when inserted not updated
 */
add_filter( 'wp_insert_attachment_data', function( $data, $postarr )
{
    if(
        empty( $postarr['ID'] )
        && isset( $postarr['post_mime_type'] )
        && wp_match_mime_types( 'image', $postarr['post_mime_type'] )
    )
        $data['post_title'] = '';

    return $data;
}, 10, 2 );

在這裏,如果附件的 ID 為空,並且 mime 類型是根據 wp_match_mime_types()的圖像類型,則使用 wp_insert_attachment_data 過濾器來覆蓋附件的標題。一個簡單的'image' === substr( $postarr['post_mime_type'], 0, 5 )檢查也可以工作。您甚至可以定位給定的 MIME 類型,如 image/jpeg

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。