Сохранение woocommerce_page_title в переменной и отображение его в Woocommerce
Я хотел бы отобразить заголовок страницы над изображением категории. Я скопировал этот код
<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-комментарий.
<h1 class="page-title"><!--?php woocommerce_page_title(); ?--></h1>
Было бы здорово, если бы кто-то мог мне помочь.
2 ответа
Функция шаблона woocommerce_page_title()
выводится по умолчанию, как вы можете видеть в его исходном коде... Но есть необязательный аргумент, который будет использоваться для возврата данных вместо их отображения. Для этого вам нужно отключить этот аргумент (по умолчанию) 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
переменная.
Попробуйте этот код:
$html .= '<h1 class="page-title">' . woocommerce_page_title() .'</h1>';
Вместо:
$html .= '<h1 class="page-title">'<?php woocommerce_page_title(); ?>'</h1>';