画像アップローダーで投稿のURLを非表示にする方法
2011.08.02
wordpressで画像をアップする際に使うアップローダーで、
画像に張るリンク先を選ぶボタンには

「なし」「ファイルのURL」「投稿のURL」
という3つから選べます。
- なし…リンクを張らない
- ファイルのURL…オリジナル画像へのリンク
- 投稿のURL…画像アタッチメントページへのリンク
という違いですが、今まで「投稿のURL」を使ったことがありません。あるいはLightbox系のプラグインを使っている場合はオリジナル画像へのリンクにならないと困ります。
そこで、「投稿のURL」のボタン自体をなくしてしまおうと思います。
まずは、ブラウザからサイトURLの後ろにwp-admin/options.phpをつけてアクセスし
image_default_link_typeの項目を「file」にしておきましょう。

アップローダー関連は
wp-adminincludesmedia.phpで制御してるようですので覗いてみましょう。
(WPver.3.2.1)
928~948行目に
function image_link_input_fields($post, $url_type = '') {<br /><br /> $file = wp_get_attachment_url($post->ID);
$link = get_attachment_link($post->ID);<br /><br /> if ( empty($url_type) )
$url_type = get_user_setting('urlbutton', 'post');<br /><br /> $url = '';
if ( $url_type == 'file' )
$url = $file;
elseif ( $url_type == 'post' )
$url = $link;<br /><br /> return "
<input class="text urlfield" name="attachments[$post->ID][url]" type="text" value="" . esc_attr($url) . "" /><br /> <button class="button urlnone">" . __('None') . "</button>
<button class="button urlfile" title="" . esc_attr($file) . "">" . __('File URL') . "</button>
<button class="button urlpost" title="" . esc_attr($link) . "">" . __('Post URL') . "</button>
";
}
という記述があります。それっぽいですね~。
ためしに
<button class="button urlpost" title="" . esc_attr($link) . "">" . __('Post URL') . "</button>
を削除してみましょう。

お!消えましたねー。
でもソースコードを直接いじるのよくない!ということでthemesフォルダ内のfunctions.phpに書くことにしましょう。
add_filter('attachment_fields_to_edit', 'new_attachment_fields_to_edit', 1, 2);
function new_attachment_fields_to_edit($fields, $post){
if (substr($post->post_mime_type,0,5) == 'image'){
$html = "<input class="text urlfield" name="attachments[$post->ID][url]" type="text" value="" . esc_attr(array_shift( wp_get_attachment_image_src($post->ID, " /><br /> <button class="button urlnone">" . __('なし') . "</button>
<button class="button urlfile" title="" . esc_attr(wp_get_attachment_url($post->ID)) . "">" . __('フルサイズ') . "</button>
";
$fields['url']['html'] = $html;
}
return $fields;
}
これを適用させると

これで画像をアップした際に「投稿のURL」ボタンがなくなりました。
ちなみに、リンクURLを中サイズや大サイズにしたい場合は
add_filter('attachment_fields_to_edit', 'new_attachment_fields_to_edit', 1, 2);
function new_attachment_fields_to_edit($fields, $post){
if (substr($post->post_mime_type,0,5) == 'image'){
$html = "<input class="text urlfield" name="attachments[$post->ID][url]" type="text" value="" . esc_attr(array_shift( wp_get_attachment_image_src($post->ID, " /><br /> <button class="button urlnone">" . __('なし') . "</button>
<button class="button urlfile" title="".esc_attr(array_shift( wp_get_attachment_image_src($post->ID, ">中サイズ</button>
<button class="button urlfile" title="".esc_attr(array_shift( wp_get_attachment_image_src($post->ID, ">大サイズ</button>
<button class="button urlfile" title="" . esc_attr(wp_get_attachment_url($post->ID)) . "">" . __('フルサイズ') . "</button>
";
$fields['url']['html'] = $html;
}
return $fields;
}
としてください。すると

このように選択項目が増えます。
環境に合わせてカスタムしてください。
多機能なのは便利ですが、まぎらわしい項目を見せなくすることも大切ですね。