0

添付ファイルページのスラッグを参照ファイル名に変更することはできますか?要するに...私はギャラリーショートコードを使用して、単純なページベースのギャラリーを構築します。

アップロードプロセス中に元のファイル名(DSC1223.jpgなど)を(3b1871561aab.jpgに)変更しましたが、URL内のスラッグとして表示されません。DSC1223のみを使用します。

istを変更する方法はありますか?

よろしく、スティーブ

最善の方法は、functions.phpにこのようなものを書くことです。

function twentyten_filter_wp_handle_upload () {

    $upload =  wp_handle_upload();

}

add_filter( 'wp_handle_upload', 'twentyten_filter_wp_handle_upload', 10, 2);
4

1 に答える 1

2

これをハッシュアップロードファイル名プラグインに追加すれば、準備は完了です。

/**
 * Filter new attachments and set the post_name the same as the hashed
 * filename.
 * 
 * @param int $post_ID
 */
function change_attachment_name_to_hash($post_ID)
{
    $file = get_attached_file($post_ID);
    $info = pathinfo($file);
    $name = trim( substr($info['basename'], 0, -(1 + strlen($info['extension'])) ) );
    wp_update_post(array(
        'ID' => $post_ID,
        'post_name' => $name
    ));
}
add_action('add_attachment', 'change_attachment_name_to_hash');

各行が何をしているのかわからない場合は、遠慮なく質問してください。

アップデート:

add_attachmentこの関数は、新しい添付ファイルがデータベースに保存された直後に、イベントにフックします。このアクションは、内から呼び出されますwp_insert_attachment()

まず、添付ファイルのファイル名()を取得しますget_attached_file()。次に、ネイティブPHP関数pathinfo()を使用してパスコンポーネントを取得し、ディレクトリパスとファイル拡張子を取り除きます。

次に、を呼び出し、データベース内の添付ファイルのをwp_update_post()更新します。post_name

于 2010-07-17T14:30:30.597 に答える