web-dev-qa-db-ja.com

アクセス付きのフランス語の文字を含む既存の古いアップグレード済画像の名前を変更します(アップグレード中ではありません)。

フランス語の文字が含まれている1,000以上の画像を更新する必要があります。

以下はテスト投稿に役立ちました。

  • FR文字なしの画像のコピーを作成しました
  • wp_update_post を使用してブログ投稿の本文内のファイル名を更新しました(WP関数)
  • wp_update_attachment_metadata を使用して「添付ファイルメタデータ」を更新しました - (WP関数)
  • update_attached_file を使用して「添付ファイル」を更新(WP関数)

私はただスキップすることができるように見えます:

  • wp_update_attachment_metadata を使用して「添付ファイルメタデータ」を更新しました - (WP関数)
  • update_attached_file を使用して「添付ファイル」を更新(WP関数)

次のコードを使用して新しい画像を参照するように投稿コンテンツを変更します。

// Array used to update the post
$my_post = array(
  'ID' => $post_ID,
  'post_content' => $content_with_updated_file_name
);

// Update post content using the array above
wp_update_post( $my_post, true );
if (is_wp_error($post_ID)) {
    $errors = $post_ID->get_error_messages();
    foreach ($errors as $error) {
        echo $error;
    }
}

これは正しい方法ですか、それとも名前を変更するすべての画像について「添付ファイルのメタデータ」と「添付ファイル」を更新し続けるべきですか。

2
Robert Sinclair

まあすべてがあなたのユースケースとユースケースに依存 - 名前の変更は正規表現を使用して一括で行うことができますか?次に、たとえば http://wp-cli.org/commands/search-replace/ を使用して、同じ正規表現をデータベースに適用します。

手動で行う必要がある場合は、 https://wordpress.org/plugins/media-file-renamer/ をご覧ください。

がんばろう!

2
Quasel

1000以上の画像の名前を変更するためにスクリプトを使用したと思います。そのため、REGEXまたは一連のREPLACE()ステートメントを使用して、wp_postmetaテーブルおよびwp_postsテーブルに対するMySQL更新クエリに同じ規則を適用できます。

SQL GUIツール、phpMyAdmin、または WP CLI を使用してこれを実行できます。

Wordpressの機能で面倒な作業を省きます。

2