将 woocommerce_page_title 存储在变量中并在 Woocommerce 中显示

Storing woocommerce_page_title in a variable and display it in Woocommerce

我想在 category-image 上显示 page-title。我复制了这段代码

<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>

从"template-archive-product.php"到"woocommerce-hook.php"如下:

$html .= '<h1 class="page-title">'<?php woocommerce_page_title(); ?>'</h1>';

现在标题没有出现。当我检查开发工具时,标题就像 html-comment.

<h1 class="page-title"><!--?php woocommerce_page_title(); ?--></h1>

如果有人能帮助我就太好了。

试试这个代码:

$html .= '<h1 class="page-title">' . woocommerce_page_title() .'</h1>';

而不是:

$html .= '<h1 class="page-title">'<?php woocommerce_page_title(); ?>'</h1>';

模板function woocommerce_page_title() is echoed by default as you can see in its source code…但是有一个可选参数用于return数据,而不是回显它。为此,您需要将此参数从(默认)true 更改为 false.

这在您需要在变量 中设置此数据时很有用,就像您尝试做的那样。所以功能代码应该有点不同:

$html .= '<h1 class="page-title">' . woocommerce_page_title( false ); . '</h1>';

已测试并有效。

或者您可以使用 php 缓冲函数来获得相同的结果,这样:

ob_start();
?>
<h1 class="page-title"><?php woocommerce_page_title(); ?></h1>
<?php
$html .= ob_get_clean();

不会输出任何内容,数据将附加到 $html 变量中。