【问题标题】:get woocommerce shop page post thumbnail获取 woocommerce 商店页面帖子缩略图
【发布时间】:2020-05-05 15:23:40
【问题描述】:

我对 woocommerce 有疑问。我正在使用woocommerce_before_main_content 挂钩添加.jumbotron 页面封面。我能够显示需要出现在背景图像上的页面标题和类别等内容,但是显示的图像是磨损的,我不知道为什么但是 wordpress 会显示第一个产品图像缩略图和图像我在 woocommerce 的商店页面中选择的特色是不同的。有解决办法吗? 我正在使用此代码:

function btheme_woocommerce_before_main_content()
  {
    if( has_post_thumbnail() ):
    ?>
      <div class="jumbotron jumbotron-fluid shop-page-cover" style="background-image:url('<?php echo the_post_thumbnail_url(); ?>');">
        <!-- <div class="parallax" data-parallax-image></div> -->
          <div class="container">
            <div class="row">
              <div class="col-sm-12 col-md-12 col-lg-12 text-center">
                <h1 class=""><?php woocommerce_page_title(); ?></h1>
                <?php $categories = get_terms( array('taxonomy' => 'product_cat') ); ?>
                <?php foreach( $categories as $category ): ?>
                  <h4 class="category-name d-inline"><?php echo $category->name; ?></h4>
                <?php endforeach; ?>
              </div>
            </div>
          </div>
      </div>
    <?php endif; ?>
      <div class="container-fluid content-wrapper" id="uptheme-woocommece-wrapper">
    <?php
  }
  add_action( 'woocommerce_before_main_content', 'btheme_woocommerce_before_main_content', 10 );

【问题讨论】:

  • 如您所说,您使用woocommerce_before_main_content 操作。它重置所有 wp 查询并运行 woocommerce 查询。
  • 那么获得我想要达到的目标的解决方案是什么?我使用了钩子,因为我重写了修改默认模板并且文档建议使用钩子。

标签: php woocommerce hook-woocommerce


【解决方案1】:

首先你需要通过 id 获取帖子缩略图

<?php
$shop_page_id = wc_get_page_id('shop');

function btheme_woocommerce_before_main_content()
  {
    if( has_post_thumbnail($shop_page_id) ):
    ?>
      <div class="jumbotron jumbotron-fluid shop-page-cover" style="background-image:url('<?php echo get_the_post_thumbnail_url($shop_page_id,'full'); ?>');">
        <!-- <div class="parallax" data-parallax-image></div> -->
          <div class="container">
            <div class="row">
              <div class="col-sm-12 col-md-12 col-lg-12 text-center">
                <h1 class=""><?php woocommerce_page_title(); ?></h1>
                <?php $categories = get_terms( array('taxonomy' => 'product_cat') ); ?>
                <?php foreach( $categories as $category ): ?>
                  <h4 class="category-name d-inline"><?php echo $category->name; ?></h4>
                <?php endforeach; ?>
              </div>
            </div>
          </div>
      </div>
    <?php endif; ?>
      <div class="container-fluid content-wrapper" id="uptheme-woocommece-wrapper">
    <?php
  }
  add_action( 'woocommerce_before_main_content', 'btheme_woocommerce_before_main_content', 99 );

【讨论】:

  • 我会试一试,我不知道wc_get_page_id()函数。我正在考虑尝试使用 get_page_by_path() 。谢谢您的帮助。如果我设置了特色图片,您对类别也有建议吗?
  • 我认为您可以使用get_queried_object_id 来检查任何其他ID。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
  • 1970-01-01
  • 2015-12-19
  • 2018-10-16
  • 2014-05-06
  • 2021-05-08
相关资源
最近更新 更多