it-swarm.com.de

Wie kann man Schnecken erzeugen?

Ich habe folgende Situation. Ich habe versehentlich die Spalte post_name in den Tabellen wp_posts für alle Zeilen aktualisiert. Jetzt muss ich die wieder irgendwie updaten. Ich habe recherchiert, dass WP diese Funktion verwendet, um Slugs wp_unique_post_slug zu generieren.

Kann mir jemand bitte eine Anleitung dazu geben? Ich habe keine Ahnung von PHP, Plugins usw. Was brauche ich dazu?

1
Giorgi Nakeuri

Wie @toscho schon antwortete hier , ja das ist möglich.

Sie müssen nur diesen Code in den functions.php Ihres Themas kopieren und los geht's.

// get all posts
$posts = get_posts( array (  'numberposts' => -1 ) );

foreach ( $posts as $post )
{
    // check the slug and run an update if necessary 
    $new_slug = sanitize_title( $post->post_title );

    // use this line if you have multiple posts with the same title
    $new_slug = wp_unique_post_slug( $new_slug, $post->ID, $post->post_status, $post->post_type, $post->post_parent );

    if ( $post->post_name != $new_slug )
    {
        wp_update_post(
            array (
                'ID'        => $post->ID,
                'post_name' => $new_slug
            )
        );
    }
}

Sie können auch ein Plugin dafür erstellen, wenn Sie in Ihrem Plugin-Ordner eine yourplugin.php-Datei mit einem gültigen Plugin-Header und dem obigen Code erstellen:

<?php
    /*
    Plugin Name: Your Plugin
    Plugin URI: http://www.example.com
    Description: description
    Version: 0.1
    Author: thatsyou
    Author URI: http://www.yourdomain.com
    License: MIT
    */

    //yourcode
?>  

Bitte beachten Sie, dass dieser Code die ganze Zeit ausgeführt wird, wenn Sie ihn in Ihren functions.php kopieren oder das Plugin aktivieren. Hier finden Sie einige Vorschläge, wie Sie Code nur einmal ausführen können: Best Practices

4
fischi