如何在div标签周围包裹标签?

时间:2018-08-22 12:21:05

标签: php html wordpress woocommerce

我正在修改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 -->

但是在编译时,标签会以某种方式损坏。

通过Chrome检查时的外观如下: the issue

您可以看到a元素在将其环绕div之前已被关闭。我已经做过一些研究,并且我读到,自HTML5以来,可以将元素包装在div元素周围。

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

2 个答案:

答案 0 :(得分:4)

HTML禁止在其他锚标记中嵌套锚标记。

这就是为什么您将无法执行此操作,这就是为什么它在发生之前会自行关闭的原因。

Why are nested anchor tags illegal?

答案 1 :(得分:1)

我们需要查看一些php值的输出,以更好地了解html的实际外观。如果您可以截取源代码(ctrl + U)的屏幕截图,它将比chrome解释的要有用。

但是,我注意到您在另一个元素内有一个锚元素。

避免这样做。

https://www.w3.org/TR/2011/WD-html5-20110525/text-level-semantics.html#the-a-element