使用函数删除产品页面中的<h1>页面标题

时间:2019-11-06 作者:James Daniel Esmatao

我想问一下如何删除<;h1 class=“页面标题”>在产品页面中?

h1 page title

以下是我的示例链接:https://pwbackup.panelwallart.com/products/colorful-world-map-on-old-wall-canvas-prints-panel-wall-art/

似乎有两个<;h1>标签存在于产品页面、页面标题和产品标题上。

我正在为我的Woocommerce网站使用波尔图主题。

2 个回复
SO网友:entreprenerds

有两种方法可以做到这一点,一种是使用挂钩,另一种是覆盖子主题中的WooCommerce模板文件。首先,让我们看看文件覆盖:

Method 1 - File Override

从WooCommerce插件文件夹中,复制templates/single-product/title.php 文件,并将其粘贴到活动主题中woocommerce/single-product/title.php

然后,只需更改此行:

the_title( \'<h1 itemprop="name" class="product_title entry-title">\', \'</h1>\' );

收件人:

the_title( \'<h2 itemprop="name" class="product_title entry-title">\', \'</h2>\' );

Method 2 – Using Hooks

我们在模板文件中找到content-single-product.php 我们需要重写的函数被调用woocommerce_template_single_title:

/**
  * Hook: woocommerce_single_product_summary.
  *
  * @hooked woocommerce_template_single_title - 5
  * @hooked woocommerce_template_single_rating - 10
  * ...
WooCommerce模板函数在中定义includes/wc-template-functions.php, 此函数如下所示:

if ( ! function_exists( \'woocommerce_template_single_title\' ) ) {

    /**
     * Output the product title.
     */
    function woocommerce_template_single_title() {
        wc_get_template( \'single-product/title.php\' );
    }
}
我们要做的是解开这个动作,然后挂接我们自己的函数——只需将此代码添加到functions.php 文件中的标题标记并对其进行任何更改the_title() 功能:

remove_action( \'woocommerce_single_product_summary\',\'woocommerce_template_single_title\', 5 );
add_action(\'woocommerce_single_product_summary\', \'your_custom_function_call\', 5 );
function your_custom_function_call() {
     the_title( \'<h2 class="product_title entry-title">\', \'</h2>\' );
}

SO网友:James Daniel Esmatao

感谢您的回复!

我遵循了前两种方法,但页面标题似乎在产品页面上仍然处于活动状态。在查找了一些文件后,我发现实际上有“七种”头文件类型(我在主题设置中选择了7)。我打开文件找到了罪犯。因为我只想在产品页面上删除额外的h1,所以我只在其中添加了一个条件。

     <? php if(!is_product()){  ?>
        <div class="text-center<?php echo ! $hide_title ? \'\' : \' d-none\'; ?>">

            <h1 class="page-title<?php echo ! $sub_title ? \'\' : \' b-none\'; ?>"><?php echo porto_strip_script_tags( $title ); ?></h1>

            <?php
            if ( $sub_title ) :
                ?>
                <p class="page-sub-title"><?php echo porto_strip_script_tags( $sub_title ); ?></p>
            <?php endif; ?>
        </div>
        <?php } ?>

相关推荐

为edit.php页面上的自定义帖子类型字段添加列和帖子过滤器

我有一个插件,它创建了一个自定义帖子类型,该类型有一个使用插件生成的自定义字段。自定义字段作为一个称为status. 此元键的值为“打开”或“关闭”。在“编辑”上。php页面列出了帖子,我想在一列中显示状态字段的内容。我还想添加一个过滤器,允许管理员在默认情况下显示所有帖子,并使用过滤器选择器仅查看“打开”和“关闭”帖子。