web-dev-qa-db-ja.com

添付ファイルのパーマリンクを編集するためのユーザー向けのインターフェースはありますか?

[gallery]タグを使用すると、画像添付ファイルのパーマリンクはblog.com/2011/03/18/post-permalink/attachment-permalinkのようになることがわかります。

パーマリンク投稿のURLの拡張子は、初回保存時の添付ファイルのタイトルに基づいているようです。しかし、私の知る限りでは、このパーマリンクは、メディアツールで画像のタイトルを編集しても更新されません。実際には、添付ファイルのパーマリンクを編集する方法をまったく見つけることができません。

ユーザーが添付ファイルのパーマリンクを編集できるようにするための、見逃しているユーザー向けのインターフェイスはありますか。

4
editor

これにより、添付ファイルの編集ページにスラッグフィールドが追加され、いつ、どのように選択したかを個別に変更できます。

プラグインまたはあなたのテーマのfunctions.phpにドロップしてください。

function wpse_12405_edit_attachment_name( $fields, $post ) {
    $fields['post_name'] = array(
        'label' => __( 'Slug' ),
        'value' => $post->post_name,
    );

    return $fields;
}

add_filter( 'attachment_fields_to_edit', 'wpse_12405_edit_attachment_name', 10, 2 );

function wpse_12405_save_attachment_name( $attachment, $POST_data ) {
    if ( ! empty( $POST_data['post_name'] ) )
        $attachment['post_name'] = $POST_data['post_name'];

    return $attachment;
}

add_filter( 'attachment_fields_to_save', 'wpse_12405_save_attachment_name', 10, 2);
12
TheDeadMedic

タイトルを編集するとファイル名が変わるプラグイン メディア名の変更 があります。

3
fuxia

TheDeadMedicの解決策はうまくいきますが、値が常に有効なスラッグであることを確認するために sanitize_title() を追加することをお勧めします。

function __save_attachment_name( $attachment, $POST_data )
{
    if ( !empty( $POST_data['post_name'] ) )
        $attachment['post_name'] = sanitize_title( $POST_data['post_name'] );
    return $attachment;
}
add_filter( 'attachment_fields_to_save', '__save_attachment_name', 10, 2);
2
Ov3rfly

WordPressは元のファイル名を添付ファイルの一意の識別子としてデータベースに保存します。残念ながら、私の知る限りでは、UI内で変更する方法はありません。それほど便利ではありませんが、おそらくファイルを再アップロードする必要があります。

1
jhdenham