我使用下面的程式碼強制WordPress 從貼文標題產生貼文slug,即使用戶定義了不同的slug 或複製另一個slug,但我希望這只影響名為job_listing 的特定貼文類型但不幸的是它會影響我網站上的所有帖子類型。
function myplugin_update_slug( $data, $postarr ) { if ( ! in_array( $data['post_status'], array( 'draft', 'pending', 'auto-draft' ) ) ) { $data['post_name'] = sanitize_title( $data['post_title'] ); } return $data; } add_filter( 'wp_insert_post_data', 'myplugin_update_slug', 99, 2 );
如何使用上述程式碼僅定位名為 job_listing 的特定貼文類型,而不影響其他貼文類型
有人可以幫我修改這段程式碼以滿足我的需要嗎?
我們將不勝感激您的幫助。
P粉9856865572024-04-01 17:10:50
根據文件 $data
包含 post_type
所以你應該可以使用它:
function myplugin_update_slug( $data, $postarr ) { if ( $data['post_type'] === 'job_listing' && ! in_array( $data['post_status'], array( 'draft', 'pending', 'auto-draft' ) ) ) { $data['post_name'] = sanitize_title( $data['post_title'] ); } return $data; } add_filter( 'wp_insert_post_data', 'myplugin_update_slug', 99, 2 );