2016-12-27 2 views
1

Ich berechne benutzerdefinierten Titel für ein Produkt mit WooCommerce hinzufügen Produktseite. Nachdem der Benutzer die Produktinformationen des Produkts veröffentlicht hat, wird der Titel von einem save_post-Filter-Hook generiert und gespeichert.WordPress - Update Permalink automatisch nach dem Posten eines Updates

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 
    } 
} 

Ich muss wissen, welche Funktion verwendet werden soll, um den Permalink nach dem Aktualisieren des Titels neu zu generieren.

Vielen Dank im Voraus

Antwort

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; 
} 

bitten Sie obigen Code in Ihrem functions.php hinzufügen?

+0

Es funktionierte perfekt für bestehende Beiträge. Aber für neue Post funktioniert es nicht. – Hamid

+0

@Hamid Wir haben von unserer Seite überprüft und es funktioniert gut. Könnten Sie bitte nochmal richtig überprüfen? – purvik7373

+0

Meinst du, wenn du ein neues Produkt erstellst und es speicherst? Dann müssen Sie den Produkttitel ändern und der Produktpermalink wird nicht geändert? Habe ich recht? – purvik7373

-1

ich glaube, Sie mit dem window.history.pushState der Browser-Historie maipulate gehen können.

Ich denke, diese können Ihnen helfen.

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

Wann sollte ich dieses Javascript aufrufen? Gibt es PHP-Code, der das könnte? – Hamid

Verwandte Themen