概要
wp_get_additional_image_sizes
フィルタは、WordPressにおける拡張されたイメージサイズを取得するためのフィルタです。このフィルタは、WordPressが追加したカスタム画像サイズを取得したり、それに基づいてさらに処理を施したりする際に使用されます。具体的には、次のような機能を実装する際によく使われます。
- プラグインによる画像サイズの拡張
- テーマによるカスタム画像サイズの管理
- 画像サイズの統一的な出力
- メディアライブラリでの画像のカスタマイズ表示
- カスタム投稿タイプのための画像サイズの定義
- 多言語サイトにおける画像サイズの調整
- 画像サイズに基づくレスポンシブデザイン
- 特定の条件に基づく画像サイズの動的生成
構文
add_filter('wp_get_additional_image_sizes', 'your_function_name');
パラメータ
array $sizes
: 追加の画像サイズの情報を含む連想配列。
戻り値
array
: 修正された画像サイズの配列。
関連する関数
使用可能なバージョン
このフィルタはWordPress 4.4.0から使用可能です。
コアファイルのパス
wp-includes/media.php
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | 〇 |
registered_post_type | 〇 |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | |
after_setup_theme | 〇 |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | |
template_redirect | |
get_header | |
wp_head | 〇 |
サンプルコード
サンプルコード1: 画像サイズの追加
function add_custom_image_sizes( $sizes ) {
$sizes['custom-size'] = array(
'width' => 800,
'height' => 600,
'crop' => true,
);
return $sizes;
}
add_filter( 'wp_get_additional_image_sizes', 'add_custom_image_sizes' );
このサンプルは、カスタム画像サイズを追加します。追加されるサイズは幅800px、高さ600pxで、トリミングが有効です。
サンプルコード2: 画像サイズの変更
function modify_custom_image_sizes( $sizes ) {
if ( isset( $sizes['medium'] ) ) {
$sizes['medium']['width'] = 640; // 幅を変更
$sizes['medium']['height'] = 480; // 高さを変更
}
return $sizes;
}
add_filter( 'wp_get_additional_image_sizes', 'modify_custom_image_sizes' );
このサンプルは、既存の「medium」画像サイズの幅と高さを変更します。これにより、メディアライブラリでの表示が変わります。
サンプルコード3: 条件に基づく画像サイズの追加
function conditional_image_sizes( $sizes ) {
if ( is_single() ) {
$sizes['post-thumbnail'] = array(
'width' => 1200,
'height' => 800,
'crop' => true,
);
}
return $sizes;
}
add_filter( 'wp_get_additional_image_sizes', 'conditional_image_sizes' );
このサンプルは、シングルポストページが表示されている時にだけ特定の画像サイズを追加します。
サンプルコード4: 画像サイズのリストを取得
function list_custom_image_sizes() {
$sizes = wp_get_additional_image_sizes();
foreach ( $sizes as $size => $attributes ) {
echo $size . ' - ' . implode( 'x', $attributes ) . '<br>';
}
}
add_action( 'wp_footer', 'list_custom_image_sizes' );
このサンプルは、フッター部に現在登録されている全てのカスタム画像サイズをリスト表示します。
サンプルコード5: 特定の画像サイズを除外
function remove_specific_image_size( $sizes ) {
unset( $sizes['medium_large'] ); // 'medium_large' を削除
return $sizes;
}
add_filter( 'wp_get_additional_image_sizes', 'remove_specific_image_size' );
このサンプルは、特定の画像サイズ(この場合は「medium_large」)を除外します。これにより、生成されない画像サイズが指定されます。