Сохранение woocommerce_page_title в переменной и отображение его в Woocommerce - PullRequest
0 голосов
/ 29 августа 2018

Я хотел бы отобразить заголовок страницы поверх изображения категории. Я скопировал этот код

<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 ]

0 голосов
/ 30 августа 2018

Шаблон функция 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.

0 голосов
/ 29 августа 2018

Попробуйте этот код:

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

Вместо:

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