プラグインWooCommerceのwoocommerce_placeholder_img関数の使用方法・解説

概要

woocommerce_placeholder_img 関数は、WooCommerce プラグインにおいてプレースホルダ画像を取得するために使用される関数です。この関数は、商品画像が設定されていない場合に代わりに表示されるデフォルトの画像を提供します。特に、以下のような場面でよく使用されます。

  1. 商品がまだ登録されていない場合
  2. 商品画像がアップロードされていない場合
  3. 商品が非公開の時
  4. 商品の画像をメディアライブラリから削除した場合
  5. カスタムテーマやプラグインでのデフォルト画像設定
  6. プレースホルダ画像を利用したカスタムヘッダーやウィジェットの実装

構文

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 の画像取得時に、画像が存在しない場合にはプレースホルダ画像に置き換えます。

この関数について質問する


上の計算式の答えを入力してください