1

wordpress に添付ファイル(zipファイル)を作成する機能があります。

関連するコードは次のとおりです。

私の質問は次のとおりです。新しいものを作成する前に、同じ添付ファイル名 (または ID またはファイルタイプ) が既に存在するかどうかを確認する方法はありますか? (添付ファイルをDBに挿入する前の意味..)

私の現在の状態では、この関数が実行されるたびに添付ファイルが作成されます。つまり、実際のファイルが 1 つのみのファイルであっても、毎回新しい添付ファイルの DB レコードを作成できます。

$attachment = array(
     'guid' => $wp_upload_dir['baseurl'] . _wp_relative_upload_path( $path  ), 
     'post_mime_type' => $wp_filetype['type'],
     'post_title' => preg_replace('/\.[^.]+$/', '', basename($path )),
     'post_content' => '',
     'post_status' => 'inherit'
  );


$attach_id = wp_insert_attachment( $attachment, $path , $post_id); // perform the magic


  require_once(ABSPATH . 'wp-admin/includes/image.php');


  wp_update_attachment_metadata( $attach_id, $attach_data ); // perform the magic II
4

1 に答える 1

2

コードがどこで発生しているかについてのより多くのコンテキストが役に立ちました...

添付ファイルの存在を確認するには、次のようなことを試してください。

global $wpdb;
$title_exists = $wpdb->get_results( 
    $wpdb->prepare( 
        "SELECT ID FROM $wpdb->posts 
        WHERE post_title = '$post->post_title' 
        AND post_type = 'attachment'"
    ) 
);

post_title = '$post->post_title'必要なチェックのために変更します。

参考:WordPress StackExchange - 同じ投稿タイトルを許可しない

于 2012-11-20T23:59:30.897 に答える