簡體   English   中英

在 WooCommerce 單個產品標題下顯示自定義字段

[英]Display a custom field under WooCommerce single product title

我在 WooCommerce 中遇到自定義字段的問題。

我有產品(書),我想添加帶有自定義字段的作者。 我通過在主題自定義字段中注冊來完成它,並使用 Wordpress 自定義字段添加新的。

自定義字段調用: product_author (即我的)和mbt_publisher_name (來自主題)

我在主題和 woocommerce 目錄中找到了模板文件title.php

我嘗試添加:

<?php echo get_post_meta($id, "product_author", true); ?> 

沒有任何變化......來自title.php的原始來源

    <?php
/**
 * Single Product title
 *
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

?>

<h2 itemprop="name" class="product_title entry-title"><?php the_title(); ?></h2>

我應該怎么做才能在標題下顯示該自定義字段?
我在哪里可以找到那個鈎子?

謝謝

如果您查看 woocommerce 模板content-single-product.php您將看到以下代碼(從第 54 行開始):

/**
 * woocommerce_single_product_summary hook.
 *
 * @hooked woocommerce_template_single_title - 5
 * @hooked woocommerce_template_single_rating - 10
 * @hooked woocommerce_template_single_price - 10
 * @hooked woocommerce_template_single_excerpt - 20
 * @hooked woocommerce_template_single_add_to_cart - 30
 * @hooked woocommerce_template_single_meta - 40
 * @hooked woocommerce_template_single_sharing - 50
 * @hooked WC_Structured_Data::generate_product_data() - 60
 */
do_action( 'woocommerce_single_product_summary' );

因此woocommerce_template_single_title以優先級為5的優先級掛在woocommerce_single_product_summary動作鈎子中(所以它是第一個)。

您可以通過 2 種方式進行操作:

1)您可以使用優先級在69之間的woocommerce_single_product_summary鈎子中掛鈎的自定義函數,這樣:

add_action( 'woocommerce_single_product_summary', 'custom_action_after_single_product_title', 6 );
function custom_action_after_single_product_title() { 
    global $product; 

    $product_id = $product->get_id(); // The product ID

    // Your custom field "Book author"
    $book_author = get_post_meta($product_id, "product_author", true);

    // Displaying your custom field under the title
    echo '<p class="book-author">' . $book_author . '</p>';
}

代碼位於活動子主題(或主題)的 function.php 文件或任何插件文件中。

此代碼經過測試並適用於 WooCommerce 3.0+


或者

2)您可以直接編輯位於您活動主題的 WooCommerce 文件夾的模板single-product/title.php 請參閱下面有關通過主題覆蓋 WooCommerce 模板的參考

<?php
/**
 * Single Product title
 *
 * @author  WooThemes
 * @package WooCommerce/Templates
 * @version 1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

// Calling global WC_Product object
global $product;

$product_id = $product->get_id(); // The product ID

// Your custom field "Book author"
$book_author = get_post_meta($product_id, "product_author", true);

?>

<h2 itemprop="name" class="product_title entry-title"><?php the_title(); ?></h2>

<p class="book-author"><?php echo $book_author; ?></p>

官方參考:模板結構 + 通過主題覆蓋 WooCommerce 模板

我向您推薦第一種方法,因為它使用鈎子更干凈,如果模板更新,您將不需要進行任何更改。 您還應該更好地使用子主題……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM