私を裸にしなさい。 [メディアのアップロード]ポップアップページで、デフォルトでカスタム画像サイズを選択したい。 Wordpress v3.4.2以前では、このエレガントなコードはうまくいきました。
function my_insert_custom_image_sizes( $sizes ) {
// get the custom image sizes
global $_wp_additional_image_sizes;
// if there are none, just return the built-in sizes
if ( empty( $_wp_additional_image_sizes ) )
return $sizes;
// add all the custom sizes to the built-in sizes
foreach ( $_wp_additional_image_sizes as $id => $data ) {
// take the size ID (e.g., 'my-name'), replace hyphens with spaces,
// and capitalise the first letter of each Word
if ( !isset($sizes[$id]) )
$sizes[$id] = ucfirst( str_replace( '-', ' ', $id ) );
}
return $sizes;
}
// Which custom image size selected by default
function my_set_default_image_size () {
return 'custom-image-size-2';
}
function custom_image_setup () {
add_theme_support( 'post-thumbnails' );
add_image_size( 'custom-image-size-1', 160, 9999 ); // columned
add_image_size( 'custom-image-size-2', 300, 9999 ); // medium
add_image_size( 'custom-image-size-3', 578, 190, true ); // cropped
add_filter( 'image_size_names_choose', 'my_insert_custom_image_sizes' );
add_filter( 'pre_option_image_default_size', 'my_set_default_image_size' );
}
add_action( 'after_setup_theme', 'custom_image_setup' );
そのため、my_insert_custom_image_sizes
はカスタム画像をメディアページに追加し、my_set_default_image_size
はcustom-image-size-2
サイズを選択する必要があります。このコードはWordpress 3.5バージョンでは動作しなくなりました。 v3.5でこれを実現する方法を知っていますか。
これを試してみてください。あなたの add_filter()の 2番目の引数は関数で、それは現在のオプションにreturnを介して影響します。
function theme_default_image_size() {
return 'custom-image-size-2';
}
add_filter( 'pre_option_image_default_size', 'theme_default_image_size' );
pre_update_option _ {$ option} filterを調べて値を1回更新することもできます。そのため、このフィルタを毎回実行する必要はありません(0.01秒節約できますが、それでも節約できます)。
または古き良き update_option() :
update_option( 'image_default_size', 'custom-image-size-2' );
テーマのfunctions.phpファイルに関数を追加してください。
if ( function_exists( 'add_theme_support' ) ) {
add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size( 150, 150 ); // default Post Thumbnail dimensions
}
function custom_image_setup () {
add_theme_support('post-thumbnails');
set_post_thumbnail_size(640,320);
add_image_size( 'custom-image-size-1', 180, 9999 ); // columned
add_image_size( 'custom-image-size-2', 350, 9999 ); // medium
add_image_size( 'custom-image-size-3', 600, 250, true ); // cropped
add_filter( 'image_size_names_choose', 'theme_custom_image_sizes' );
add_filter( 'pre_option_image_default_size', 'theme_default_image_size' );
}
if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'category-thumb', 300, 9999 ); //300 pixels wide (and unlimited height)
add_image_size( 'homepage-thumb', 220, 180, true ); //(cropped)
}
テーマのテンプレートファイル内で新しい画像サイズを使用する。
if ( has_post_thumbnail() ) { the_post_thumbnail( 'category-thumb' ); }