Перемещение заголовка страницы на странице архива-продукта в WooCommerce

На моей странице магазина WooCommerce (шаблон архива-продукта) я пытаюсь переместить заголовок страницы так, чтобы он находился за пределами внутренней области сайта, а не в области заголовка, как на других страницах моего сайта. Я хочу добавить полноразмерное изображение позади него, поэтому оно мне нужно за пределами текущего хука, в котором он находится.

Я также хотел бы иметь возможность сделать это редактирование в моем functions.php файл, так что мне не нужно беспокоиться об обновлениях WooCommerce.

Вот код на странице архива продукта, который контролирует заголовок:

get_header( 'shop' ); ?>

<?php
/**
* woocommerce_before_main_content hook.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
*/
do_action( 'woocommerce_before_main_content' );
?>

<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>

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

<?php endif; ?>

<?php
/**
* woocommerce_archive_description hook.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>

Что я могу добавить к своему functions.php, чтобы переопределить, где сейчас находится заголовок страницы? Вы можете увидеть рассматриваемая страница здесь.

2

Решение

Во-первых, возможно Переопределить шаблоны WooCommerce через тему (лучше с детской темой) избегая проблемы обновлений woocommerce.

Чтобы удалить заголовок страницы архивов WooCommerce, используйте код ниже:

add_filter( 'woocommerce_show_page_title', '__return_false' );

Код помещается в файл function.php вашей активной дочерней темы (или темы) или также в любой файл плагина.


Тогда вам придется редактировать свой header.php шаблон темы, чтобы заголовок страницы отображался на странице магазина так, как вы хотите (лучшее решение — создать дочернюю тему и скопировать header.php от родительской темы к детской теме).

Вы также можете использовать WooCommerce условные теги настроить таргетинг на страницу магазина и другие страницы архивов WooCommerce …

1

Другие решения

  1. копия wp-content\plugins\woocommerce\templates\archive-product.php
    в wp-content\themes\your-theme\woocommerce\archive-product.php
  2. Изменить код:
<?php
/**
* The Template for displaying product archives, including the main shop page which is a post type archive
*
* This template can be overridden by copying it to yourtheme/woocommerce/archive-product.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see 	    https://docs.woocommerce.com/document/template-structure/
* @author 		WooThemes
* @package 	WooCommerce/Templates
* @version     3.3.0
*/

if ( ! defined( 'ABSPATH' ) ) {
exit;
}

get_header( 'shop' );

/**
* Hook: woocommerce_before_main_content.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* @hooked woocommerce_breadcrumb - 20
* @hooked WC_Structured_Data::generate_website_data() - 30
*/

?>
<header class="woocommerce-products-header">
<?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
<h1 class="woocommerce-products-header__title page-title"><?php woocommerce_page_title(); ?></h1>
<?php endif; ?>

<?php
/**
* Hook: woocommerce_archive_description.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
?>
</header>
<?php

do_action( 'woocommerce_before_main_content' );

if ( have_posts() ) {

/**
* Hook: woocommerce_before_shop_loop.
*
* @hooked wc_print_notices - 10
* @hooked woocommerce_result_count - 20
* @hooked woocommerce_catalog_ordering - 30
*/
do_action( 'woocommerce_before_shop_loop' );

woocommerce_product_loop_start();

if ( wc_get_loop_prop( 'total' ) ) {
while ( have_posts() ) {
the_post();

/**
* Hook: woocommerce_shop_loop.
*
* @hooked WC_Structured_Data::generate_product_data() - 10
*/
do_action( 'woocommerce_shop_loop' );

wc_get_template_part( 'content', 'product' );
}
}

woocommerce_product_loop_end();

/**
* Hook: woocommerce_after_shop_loop.
*
* @hooked woocommerce_pagination - 10
*/
do_action( 'woocommerce_after_shop_loop' );
} else {
/**
* Hook: woocommerce_no_products_found.
*
* @hooked wc_no_products_found - 10
*/
do_action( 'woocommerce_no_products_found' );
}

/**
* Hook: woocommerce_after_main_content.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );

/**
* Hook: woocommerce_sidebar.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );

get_footer( 'shop' );
0

По вопросам рекламы [email protected]