php – 在Woocommerce产品类别档案中加载特定元素
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 在Woocommerce产品类别档案中加载特定元素,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4240字,纯文字阅读大概需要7分钟。
内容图文
![php – 在Woocommerce产品类别档案中加载特定元素](/upload/InfoBanner/zyjiaocheng/775/f019b170b3a1455aa306952461b7a37e.jpg)
他们是通过functions.php或其他php方法在woocommerce中的商店/主页上不加载特定div元素的方法吗?
<div id="nm-shop" class="nm-shop nm-shop-sidebar-header images-lazyload images-show" style="min-height: 288px;">
...
</div>
这段代码包含了我的商店页面的过滤器和产品档案,但我只想在类别页面上显示它,它已经有效,但不在主页面上.如何在商店/主页面上停止加载此div元素?我知道可以通过css display:none;但这不是最干净的解决方案.
我在archive-product.php中找到了div类,但我不确定它是否已定义为在商店页面上加载它.
<div id="nm-shop" class="nm-shop <?php echo esc_attr( $shop_class ); ?>">
<?php
/**
* Hook: woocommerce_before_main_content.
*
* @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
* NM: Removed - @hooked woocommerce_breadcrumb - 20
* @hooked WC_Structured_Data::generate_website_data() - 30
*/
do_action( 'woocommerce_before_main_content' );
?>
<?php
// Shop header
if ( $nm_theme_options['shop_header'] ) {
wc_get_template_part( 'content', 'product_nm_header' );
}
?>
<?php nm_print_shop_notices(); // Note: Don't remove (WooCommerce will output multiple messages otherwise) ?>
<div id="nm-shop-products" class="nm-shop-products">
<div class="nm-row">
<?php
if ( $show_filters_sidebar ) {
/**
* woocommerce_sidebar hook.
*
* @hooked woocommerce_get_sidebar - 10
*/
do_action( 'woocommerce_sidebar' );
}
?>
<div class="nm-shop-products-col <?php echo esc_attr( $shop_column_size ); ?>">
<div id="nm-shop-products-overlay" class="nm-loader"></div>
<div id="nm-shop-browse-wrap" class="nm-shop-description-<?php echo esc_attr( $nm_theme_options['shop_description_layout'] ); ?>">
<?php
// Results bar/button
wc_get_template_part( 'content', 'product_nm_results_bar' );
?>
<?php
// Taxonomy description
if ( $show_taxonomy_description ) {
if ( $is_product_taxonomy ) {
/**
* Hook: woocommerce_archive_description.
*
* @hooked woocommerce_taxonomy_archive_description - 10
* @hooked woocommerce_product_archive_description - 10
*/
do_action( 'woocommerce_archive_description' );
} else if ( strlen( $nm_theme_options['shop_default_description'] ) > 0 && ! isset( $_REQUEST['s'] ) ) { // Don't display on search
// Default description
nm_shop_description( $nm_theme_options['shop_default_description'] );
}
}
?>
<?php
if ( woocommerce_product_loop() ) {
/**
* Hook: woocommerce_before_shop_loop.
*
* @hooked wc_print_notices - 10
* NM: Removed - @hooked woocommerce_result_count - 20
* NM: Removed - @hooked woocommerce_catalog_ordering - 30
*/
do_action( 'woocommerce_before_shop_loop' );
// Set column sizes
global $woocommerce_loop;
$woocommerce_loop['columns'] = $nm_theme_options['shop_columns'];
$woocommerce_loop['columns_small'] = '2';
$woocommerce_loop['columns_medium'] = '3';
woocommerce_product_loop_start();
$nm_globals['is_categories_shortcode'] = false;
if ( wc_get_loop_prop( 'total' ) ) {
while ( have_posts() ) {
the_post();
// Note: Don't place in another template (image lazy-loading is only used in the Shop and WooCommerce shortcodes can use the other product templates)
$nm_globals['shop_image_lazy_loading'] = ( $nm_theme_options['product_image_lazy_loading'] ) ? true : false;
/**
* 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' );
}
?>
</div>
</div>
</div>
<?php
/**
* Hook: woocommerce_after_main_content.
*
* @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
*/
do_action( 'woocommerce_after_main_content' );
?>
</div>
<?php
// Sidebar/filters popup
if ( $show_filters_popup ) {
wc_get_template_part( 'content', 'product_nm_filters_popup' );
}
?>
</div>
<?php
/**
* Hook: nm_after_shop.
*/
do_action( 'nm_after_shop' );
get_footer( 'shop' );
?>
解决方法:
您只能使用woocommerce conditional tag is_product_category()来定位产品类别存档页面,这样:
<?php if( is_product_category() ) : ?>
<div id="nm-shop" class="nm-shop nm-shop-sidebar-header images-lazyload images-show" style="min-height: 288px;">
...
</div>
<?php endif; ?>
它应该有效
内容总结
以上是互联网集市为您收集整理的php – 在Woocommerce产品类别档案中加载特定元素全部内容,希望文章能够帮你解决php – 在Woocommerce产品类别档案中加载特定元素所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。