2016-12-27 1 views
1

Я вычисляю пользовательский заголовок для продукта, используя страницу WooCommerce add product. После получения информации о продукте пользователя заголовок создается и сохраняется с помощью фильтра фильтра 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

@ Hamid Мы проверили у нас, и все работает нормально. Не могли бы вы перепроверить? – purvik7373

+0

Вы имели в виду при создании нового продукта и его сохранении? Затем вам нужно изменить название продукта, и ваша постоянная ссылка продукта не будет изменена? Я прав? – purvik7373

-1

Я думаю, что вы можете пойти с window.history.pushState для maipulate браузера истории.

Я думаю, что это может вам помочь.

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

Когда я могу назвать этот javascript? Есть ли какой-нибудь PHP-код, который мог бы это сделать? – Hamid