Wordpress短代码重复问题

时间:2018-03-19 16:06:43

标签: wordpress shortcode

我正在创建一个短代码,用于抓取我作为短代码属性传递的网址中的特定内容。如果在一个帖子上多次使用短代码,就会出现问题。然后第二个短代码覆盖第一个短代码。这是代码。页面上显示两个值,两个值都相同,并从第二个短代码属性中提取。应该有两个不同的值。

以下是短代码:

<?php
function grabUrl_func( $atts ) {

$url = $atts['url'];
$label = $atts['label'];
$productId = $atts['id'];


?>
<script>

    var urlFromSc = <?php echo json_encode($url) ?>;

    var buttonLabel = <?php echo json_encode($label) ?>;

    jQuery(document).ready(function() {

        jQuery.get(urlFromSc, function(response) {

            // grab product name

            var productName = jQuery(response).find('.product-name');

            var productNameContent = productName[1]['innerHTML'];

            jQuery('.g-title').append(productNameContent);


            // grab image

            var productImage = jQuery(response).find('.product-image-gallery');

            var productImageContent = productImage[0]['innerHTML'];

            jQuery('.g-image').append(productImageContent);

            jQuery('.g-image img').slice(1).remove();


            // grab price

            var productPrice = jQuery(response).find('.price-box');

            var productPriceContent = productPrice[0]['innerHTML'];

            jQuery('.g-price').append(productPriceContent);


            // grab rating

            var productRating = jQuery(response).find('.yotpo');

            var productRatingContent = productRating[0]['outerHTML'];

            var productId = jQuery(productRatingContent).attr('data-product-id');

            var link = jQuery('<a class="productLink" href="' + urlFromSc + '">' + buttonLabel + '</a>' );

            jQuery('.g-link').append(link);

        });
    });

</script>

<?php

$output =  '<div class="g-wrapper">'
    . '<div class="g-image"></div>'
    . '<div class="g-title"></div>'
    . '<div class="g-price"></div>'
    . '<div class="g-rating">'
    . '<div class="yotpo yotpo-main-widget" data-product-id="'.$productId.'"></div>'
    . '</div>'
    .'<div class="g-link"></div>'
    .'</div>';


return $output;

}
add_shortcode( 'grabUrl', 'grabUrl_func' );

?>

提前感谢您的帮助!

0 个答案:

没有答案