首页 > 解决方案 > 如何将 a 标签包裹在 div 标签周围?

问题描述

我正在修改一个 WordPress 主题,我有这段代码:

// Product link
$product_link_atts = ' href="' . esc_url( get_permalink() ) . '"';

<a<?php echo $product_link_atts; ?>><!-- Begin my a tag -->
    <div class="nm-shop-loop-details">
        <?php if ( $nm_globals['wishlist_enabled'] ) : ?>
        <div class="nm-shop-loop-wishlist-button"><?php nm_wishlist_button(); ?></div>
        <?php endif; ?>

        <h3><a<?php echo $product_link_atts; ?>><?php the_title(); ?></a></h3>
        <?php 
            /**
             * Hook: woocommerce_shop_loop_item_title.
             */
            do_action( 'woocommerce_shop_loop_item_title' );
        ?>

        <div class="nm-shop-loop-after-title <?php echo esc_attr( $nm_theme_options['product_action_link'] ); ?>">
            <div class="nm-shop-loop-price">
                <?php
                    /**
                     * Hook: woocommerce_after_shop_loop_item_title.
                     *
                     * @hooked woocommerce_template_loop_price - 10
                     */
                    do_action( 'woocommerce_after_shop_loop_item_title' );
                ?>
            </div>

            <div class="nm-shop-loop-actions">
                <?php
                    if ( $quickview_enabled ) {
                        echo apply_filters( 'nm_product_quickview_link', '<a' . $quickview_link_atts . '>' . esc_html__( 'Show more', 'nm-framework' ) . '</a>' );
                    }

                    /**
                     * Hook: woocommerce_after_shop_loop_item.
                     *
                     * @hooked woocommerce_template_loop_add_to_cart - 10
                     */
                    do_action( 'woocommerce_after_shop_loop_item' );
                ?>
            </div>
        </div>
    </div>
</a><!-- Close my a tag -->

我试图在这段代码周围加上一个标签(从第 4 行开始)。

<a<?php echo $product_link_atts; ?>><!-- Begin my a tag -->

但不知何故,a 标签在编译时被破坏了。

这是通过 Chrome 检查时的样子: 问题

如您所见,a 元素在将自身包裹在 div 周围之前已被关闭。我做了一些研究,我读到自 HTML5 以来,可以将元素包装在 div 元素周围。

我不确定我在这里错过了什么,我只是错过了一些愚蠢的东西,还是我实际上正在尝试做一些不起作用的事情。

标签: phphtmlwordpresswoocommerce

解决方案


HTML 禁止在其他锚标签内嵌套锚标签。

这就是为什么你无法做到这一点,这就是为什么它会在它发生之前自行关闭。

为什么嵌套锚标签是非法的?


推荐阅读