2016-12-27 42 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 
    } 
} 

我需要知道使用什麼功能來重新生成更新標題後的永久鏈接。

在此先感謝

回答

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去maipulate瀏覽器歷史記錄。

我認爲這些可能會對您有所幫助。

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

什麼時候該調用這個javascript?有沒有任何PHP代碼可以做到這一點? – Hamid