motoyamayuki.com

Blog

画像アップローダーで投稿の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="&quot; . esc_attr($url) . &quot;" /><br />	<button class="button urlnone">" . __('None') . "</button>
	<button class="button urlfile" title="&quot; . esc_attr($file) . &quot;">" . __('File URL') . "</button>
	<button class="button urlpost" title="&quot; . esc_attr($link) . &quot;">" . __('Post URL') . "</button>
";
}

 

という記述があります。それっぽいですね~。
ためしに

<button class="button urlpost" title="&quot; . esc_attr($link) . &quot;">" . __('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="&quot; . esc_attr(array_shift( wp_get_attachment_image_src($post->ID, " /><br />                                <button class="button urlnone">" . __('なし') . "</button>
                                <button class="button urlfile" title="&quot; . esc_attr(wp_get_attachment_url($post->ID)) . &quot;">" . __('フルサイズ') . "</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="&quot; . esc_attr(array_shift( wp_get_attachment_image_src($post->ID, " /><br />                                <button class="button urlnone">" . __('なし') . "</button>
                                <button class="button urlfile" title="&quot;.esc_attr(array_shift( wp_get_attachment_image_src($post->ID, ">中サイズ</button>
                                <button class="button urlfile" title="&quot;.esc_attr(array_shift( wp_get_attachment_image_src($post->ID, ">大サイズ</button>
                                <button class="button urlfile" title="&quot; . esc_attr(wp_get_attachment_url($post->ID)) . &quot;">" . __('フルサイズ') . "</button>
";
                $fields['url']['html'] = $html;
        }
        return $fields;
}

 

としてください。すると

このように選択項目が増えます。
環境に合わせてカスタムしてください。

多機能なのは便利ですが、まぎらわしい項目を見せなくすることも大切ですね。

  • このブログをはてなブックマークに追加

Contact

お仕事のご依頼、面白いことのお誘い、一度お話してみたい!などなど、完山祐毅へのお問い合わせは、下記のフォームよりお願いします。送信後、 info@motoyamayuki.com より確認のメールが届きます。
※多くのご相談・ご依頼をいただき誠にありがとうございます。当面のスケジュールが決まっているため、直近での作業が必要なご依頼についてはお請けいたしかねます。大変恐縮ではありますが、あらかじめご了承くださいませ。

お問い合わせフォーム
お名前
メールアドレス
メールアドレス(確認用)
内容
Treble