web-dev-qa-db-ja.com

保存後に投稿タイトルを傍受する方法

私はWPが初めてで、この解決策を自分で見つけることができませんでした。

これは私の機能です、

関数explodetitletotags(){
 
 global $ post; 
 
 $ title = $ post-> post_title; 
 
 $ tags = explode( ''、preg_replace( '/ [^\p {L} 0-9] /'、 ''、$ title)); 
 
 $タグを$ tag {
 
 global $ post; 
 
 $ thePostID = $ post-> ID; 
 
 wp_add_post_tags($ thePostID、$ tag); 
 
} 
 
} 
 ] add_action( 'publish_post'、 'explodetitletotags'); 
 

この関数はを除いて魅力的に動作します。新しい単一の投稿ページの投稿タイトルが更新された場合、タイトルは常に最後の値ではなく前の値を与えます。タイトル入力ボックスに入力した時間.

ここでの私の仮定は、私の関数の$title = $post->post_title;が新しいバージョンの代わりにデータベースから古いバージョンのタイトルを呼び出す、それがデータベースに送られる前にタイトルをつかまないでタイトルが常に最新のバージョンである理由です。はい?

もしそうなら、それがwp_postsテーブルデータベースに保存される前にポストセーブでワードプレスを傍受/捕獲する方法はありますか?

私の最初の舌ではないので、私は私の英語をごめんなさいと助けてくれてありがとう。

2
ded syd

保存する前にタイトルを設定するには、wp_insert_post_dataにフックします。

add_filter( 'wp_insert_post_data', 'wpse_75597_change_title' );

function wpse_75597_change_title( $post_data )
{
    $post_data['post_title'] = 'SOMETHING VERY LOUD';

    return $post_data;
}
2
fuxia