it-swarm.com.de

Ändern Sie den Slug mit dem benutzerdefinierten Feld

Ich möchte den Slug eines Posts mit einem benutzerdefinierten Feld ändern.

Wenn das benutzerdefinierte Feld beispielsweise "keyword" lautet, lautet mein Beitragslink:meinesite.com/keyword.

Wenn das benutzerdefinierte Feld leer ist, möchte ich einen zufälligen Schlüssel wiemysite.com/xV5f7Agenerieren.

Wie kann ich das tun, ohne den WordPress-Kern zu ändern?

Irgendwelche Ideen sind willkommen! Vielen Dank.

2
user1568901

Der Slug wird auf den wp_posts gespeichert, während sich benutzerdefinierte Felder auf der wp_posts_meta befinden. Wenn Sie es so machen möchten, können Sie einen Aktions-Hook für save_post verwenden, der den Wert der benutzerdefinierten Felder abruft und als Beitrags-Slug speichert.

Hier ist der Code

add_action('save_post', 'set_slug');

function set_slug($post_id){
    $new_slug = get_post_meta($post_id,'custom-slug', true);    
    $post_args = array(
        'ID' => $post_id,
        'post_name' => $new_slug,
    );

    wp_update_post($post_args);
}
3
ifdion