代码之家  ›  专栏  ›  技术社区  ›  Trisha

在if语句中同时使用多个条件标记

  •  1
  • Trisha  · 技术社区  · 7 年前

    我对 is_cart() , is_checkout() , is_account_page() 功能。

    我想做的是:

    • 如果是购物车页面,则回显此短代码。
    • 如果是 不是 购物车页面,然后什么也不做。

    这需要发生在页面的顶部和底部,都在页面容器的外部。

    当我查看购物车、结账、账户页面时,它工作得完美无缺。但当我查看任何其他非购物车/结帐/账户页面的页面时,仍然会显示快捷代码!

    该网站将Divi主题(由ElegantThemes)用于WooCommerce。 以下是我正在使用的代码片段:

    <?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
     <?php echo do_shortcode('[et_pb_section global_module="218"][/et_pb_section]'); ?>
     <?php endif; ?>
    

    <?php endif; ?>
    <?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
     <?php echo do_shortcode('[et_pb_section global_module="247"][/et_pb_section]'); ?>
     <?php endif; ?>
    

    这是整个页面。php代码:

    <?php
    
    get_header();
    
    $is_page_builder_used = et_pb_is_pagebuilder_used( get_the_ID() );
    ?>
    <?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
     <?php echo do_shortcode('[et_pb_section global_module="218"][/et_pb_section]'); ?>
     <?php endif; ?>
    
        <div id="main-content">
    
    
    <?php if ( ! $is_page_builder_used ) : ?>
    
        <div class="container">
            <div id="content-area" class="clearfix">
                <div id="left-area">
    
    <?php endif; ?>
    
                <?php while ( have_posts() ) : the_post(); ?>
    
                    <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    
                    <?php if ( ! $is_page_builder_used ) : ?>
    
                        <h1 class="entry-title main_title"><?php the_title(); ?></h1>
                    <?php
                        $thumb = '';
    
                        $width = (int) apply_filters( 'et_pb_index_blog_image_width', 1080 );
    
                        $height = (int) apply_filters( 'et_pb_index_blog_image_height', 675 );
                        $classtext = 'et_featured_image';
                        $titletext = get_the_title();
                        $thumbnail = get_thumbnail( $width, $height, $classtext, $titletext, $titletext, false, 'Blogimage' );
                        $thumb = $thumbnail["thumb"];
    
                        if ( 'on' === et_get_option( 'divi_page_thumbnails', 'false' ) && '' !== $thumb )
                            print_thumbnail( $thumb, $thumbnail["use_timthumb"], $titletext, $width, $height );
                    ?>
    
                    <?php endif; ?>
    
                        <div class="entry-content">
                        <?php
                            the_content();
    
                            if ( ! $is_page_builder_used )
                                wp_link_pages( array( 'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'Divi' ), 'after' => '</div>' ) );
                        ?>
                        </div> <!-- .entry-content -->
    
                    <?php
                        if ( ! $is_page_builder_used && comments_open() && 'on' === et_get_option( 'divi_show_pagescomments', 'false' ) ) comments_template( '', true );
                    ?>
    
                    </article> <!-- .et_pb_post -->
    
                <?php endwhile; ?>
    
    <?php if ( ! $is_page_builder_used ) : ?>
    
                </div> <!-- #left-area -->
    
                <?php get_sidebar(); ?>
            </div> <!-- #content-area -->
        </div> <!-- .container -->
    
    <?php endif; ?>
    <?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
     <?php echo do_shortcode('[et_pb_section global_module="247"][/et_pb_section]'); ?>
     <?php endif; ?>
    </div> <!-- #main-content -->
    
    <?php get_footer(); ?>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   LoicTheAztec    7 年前

    如果我理解的很好,你想输出这个短代码的内容,只有在购物车,结帐和帐户页面

    那么,你最好试试这个较短的方法:

    <?php  
        if ( class_exists( 'WooCommerce' ) && ( is_cart() || is_account_page() || is_checkout() ) ) :
            echo do_shortcode('[et_pb_section global_module="247"][/et_pb_section]');
        endif; 
    ?>
    

    使用 class_exists( 'WooCommerce' ) 将确保woocommerce插件已加载,并且条件标记将正常工作