在挖掘代码两天后,我已经尝试了几乎所有我知道的事情......我已经到了我要么踢项目并埋葬它还是有人可以点燃火灾并帮助我
我使用WooCommerce插件设置了Wordpress,产品被淘汰了......直到那里都很好。 我想要添加的是访问者能够提升产品的可能性。所以我正在寻找一个插件并找到一个。 但那是实际问题!名为“Like-Photo”的插件为我提供了wordpress短代码功能。如果我在wordpress编辑器中插入短代码(在图像之前和之后),一切正常。 但我需要将该代码放在php文件(循环产品的那个)本身。 所以我尝试使用php echo函数作为短代码,如下所示。它根本不起作用。当我在浏览器中打开检查器工具时,我只看到第二个短代码部分在文本中呈现出来并且应该创建一个div(当我在wordpress post编辑器中粘贴短代码时它会做什么)。
任何人都可以帮我吗?我在精神上完成了: - (
如果有人愿意为我提供一些帮助,那么就提前了! 是的,我不是php的专家,所以请你好。 <?php echo do_shortcode('[add_voting]'); ?> <!-- shortcode beginning-->
<?php do_action( 'woocommerce_before_shop_loop_item' ); ?> <!-- The loop for the items-->
<div class="image-box">
<div class="voteup_layer">
<div class="voteup_layer_triangle">
<div class="voteup_layer_triangle-inner"></div>
</div>
<p>CLICK 2 UPVOTE</p>
</div>
<div class="sb_title"><?php the_title(); ?></div>
<div class="arrow-up"></div>
<div id="num-id" class="count-num">20.453</div>
<a href="<?php the_permalink(); ?>">
<?php
/**
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
if ( has_post_thumbnail() ) {
//echo get_the_post_thumbnail( get_the_ID(), array(370,370) );
echo get_the_post_thumbnail( get_the_ID(), 'home-small-box' );
}
?>
</a>
</div>
<?php echo do_shortcode('[/add_voting]'); ?> <!-- shortcode end-->
我收到了这个html输出:
<div class="home_small_box ">
<div class="image-box">
<div class="voteup_layer">
<div class="voteup_layer_triangle">
<div class="voteup_layer_triangle-inner"></div>
</div>
<p>CLICK 2 UPVOTE</p>
</div>
<div class="sb_title">FOSSIL <br> <span class="thin">Moon Explorer</span></div>
<div class="arrow-up"></div>
<div id="num-id" class="count-num">20.453</div>
<a href="http://online.com/product/fossil-moon-explorer/">
<img width="360" height="360" src="http://online.com/wp-content/uploads/2015/08/shopping-1-360x360.jpg" class="attachment-home-small-box wp-post-image" alt="shopping-1">
</a>
</div>
"[/add_voting]"
并且想要(这是我在wordpress编辑器中添加短代码后呈现HTML的方式 - 它在图像周围创建了一个名为“like-photo-wrapper”的div,我放置了短代码并添加了投票功能) :
<div class="like-photo-wrapper">
<a href="http://online.com/wp...2.jpg">
<img src="http://online.com/wp...300.jpg" alt="shopping-2" >
</a>
<div class="votes"><span class="currentVotes">Votes: 0</span>
<a href="http://online.com" title="vote on this image">vote on this image</a>
</div>
</div>
短信在我的php中无法正常工作。
答案 0 :(得分:2)
查看do_shortcode的文档。
它的要点是,对包含内容的短代码调用do_shortcode
应该是这样的
// In case there is opening and closing shortcode.
echo do_shortcode( '[iscorrect]' . $text_to_be_wrapped_in_shortcode . '[/iscorrect]' );
您可以尝试使用输出缓冲捕获输出并将其传递到短代码中。
ob_start();
<?php do_action( 'woocommerce_before_shop_loop_item' ); ?> <!-- The loop for the items-->
<div class="image-box">
<div class="voteup_layer">
<div class="voteup_layer_triangle">
<div class="voteup_layer_triangle-inner"></div>
</div>
<p>CLICK 2 UPVOTE</p>
</div>
<div class="sb_title"><?php the_title(); ?></div>
<div class="arrow-up"></div>
<div id="num-id" class="count-num">20.453</div>
<a href="<?php the_permalink(); ?>">
<?php
/**
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
if ( has_post_thumbnail() ) {
//echo get_the_post_thumbnail( get_the_ID(), array(370,370) );
echo get_the_post_thumbnail( get_the_ID(), 'home-small-box' );
}
?>
</a>
</div>
$out = ob_get_clean();
<?php echo do_shortcode('[add_voting] ' . $out . '[/add_voting]'); ?> <!-- shortcode end-->