概要
woocommerce_placeholder_img
関数は、WooCommerce プラグインにおいてプレースホルダ画像を取得するために使用される関数です。この関数は、商品画像が設定されていない場合に代わりに表示されるデフォルトの画像を提供します。特に、以下のような場面でよく使用されます。
- 商品がまだ登録されていない場合
- 商品画像がアップロードされていない場合
- 商品が非公開の時
- 商品の画像をメディアライブラリから削除した場合
- カスタムテーマやプラグインでのデフォルト画像設定
- プレースホルダ画像を利用したカスタムヘッダーやウィジェットの実装
構文
woocommerce_placeholder_img( $size = 'woocommerce_placeholder', $echo = true );
パラメータ
$size
: 取得する画像のサイズ(デフォルトはwoocommerce_placeholder
)$echo
: 画像のHTMLを直接出力するかどうか(デフォルトはtrue
)
戻り値
指定されたサイズのプレースホルダ画像のHTMLタグとして返されます。
バージョン
- WooCommerce バージョン: 3.0以上
- WordPress バージョン: 4.0以上
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
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
if ( ! has_post_thumbnail() ) {
echo woocommerce_placeholder_img();
}
説明: 商品にサムネイル画像が設定されていない場合に、デフォルトのプレースホルダ画像を表示します。
サンプルコード 2
function custom_product_image() {
global $post;
if ( empty( get_post_thumbnail_id( $post->ID ) ) ) {
echo woocommerce_placeholder_img( 'full' );
}
}
add_action( 'woocommerce_before_single_product_summary', 'custom_product_image', 10 );
説明: シングル商品ページのサマリーの前に、サムネイル画像が無い場合はフルサイズのプレースホルダ画像を表示します。
サンプルコード 3
function display_placeholder_in_cart_item( $product_name, $cart_item ) {
if ( ! has_post_thumbnail( $cart_item['product_id'] ) ) {
$product_name .= ' ' . woocommerce_placeholder_img();
}
return $product_name;
}
add_filter( 'woocommerce_cart_item_name', 'display_placeholder_in_cart_item', 10, 2 );
説明: カート内の商品名の横に、商品画像が設定されていない場合はプレースホルダ画像を追加表示します。
サンプルコード 4
function add_placeholder_as_default_image( $product ) {
if ( ! $product->get_image_id() ) {
$product->set_image_id( woocommerce_placeholder_img() );
}
}
add_action( 'woocommerce_product_object', 'add_placeholder_as_default_image' );
説明: 商品オブジェクトのイメージIDが設定されていなければ、プレースホルダ画像をデフォルトの画像として設定します。
サンプルコード 5
function replace_empty_product_images( $html, $post_id ) {
if ( ! has_post_thumbnail( $post_id ) ) {
$html = woocommerce_placeholder_img();
}
return $html;
}
add_filter( 'woocommerce_get_image', 'replace_empty_product_images', 10, 2 );
説明: WooCommerce の画像取得時に、画像が存在しない場合にはプレースホルダ画像に置き換えます。