web-dev-qa-db-ja.com

ナメクジを生成する方法?

私は次のような状況があります。誤ってすべての行のpost_name表のwp_posts列を更新しました。今、私はそれらをどういうわけか更新する必要があります。私はWPがスラッグwp_unique_post_slugを生成するためにこの関数を使うことを研究しました。

誰かがこれを行う方法を私に提供してもらえますか?私はPHP、プラグインなどを知りません。これを行うために何が必要ですか?

1
Giorgi Nakeuri

@toschoはすでにここ に答えていたので 、はい、これは可能です。

このコードをあなたのテーマのfunctions.phpにコピーするだけでいいのです。

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

有効なプラグインヘッダーと上記のコードを使用して、pluginsフォルダにyourplugin.phpファイルを作成する場合は、そのためのプラグインも作成できます。

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

このコードをfunctions.phpにコピーするか、プラグインをアクティベートすると、常に実行されることに注意してください。ここで一度だけコードを実行する方法についていくつかのアイデアを得ることができます。 ベストプラクティス

4
fischi