2016-12-27 8 views
1

私はWooCommerce製品ページを使用して製品のカスタムタイトルを計算しています。ユーザー投稿商品の情報の後、タイトルが生成され、save_postフィルターフックによって保存されます。WordPress - アップデートを投稿すると自動的にパーマリンクが更新されます

add_filter('save_post', 'modify_post_title', '99', 1); 
function modify_post_title($post_id) 
{ 
    // some logic to form a new $title 
    // ... 

    if (!empty($title)) { 
     // update the title in database 
     $wpdb->update($wpdb->posts, array('post_title' => $title), array('ID' => $post_id));  

     // UPDATE PERMALINK 
    } 
} 

タイトルを更新した後にパーマリンクを再生成するために使用する関数を知る必要があります。私はあなたがブラウザの歴史をmaipulateするwindow.history.pushStateで行くことができると思い、事前

答えて

0
add_filter('wp_insert_post_data', 'custom_slug_change', 50, 2); 
function custom_slug_change($data, $postarr) { 
    //Check for the post statuses you want to avoid 
    if (!in_array($data['post_status'], array('draft', 'pending', 'auto-draft'))) {   
     $data['post_name'] = sanitize_title($data['post_title']); 
    } 
    return $data; 
} 

あなたfunctions.phpに上記のコードを追加してくださいますか?

+0

既存の投稿の場合は完全に機能しました。しかし、新しい投稿のためには機能しません。 – Hamid

+0

@ハミド私たちは私たちの側からチェックし、うまくいきました。正しく再確認してください。 – purvik7373

+0

新製品を作成して保存するときは意味しましたか?その後、製品のタイトルと製品を変更する必要があります。パーマリンクは変更されていませんか?私は正しい? – purvik7373

-1

感謝。

これらはあなたに役立つと思います。

window.history.pushState("object or string", "Title", surl[0]); 
+0

このjavascriptはいつ呼び出す必要がありますか?それを行うことができるPHPコードはありますか? – Hamid

関連する問題