我使用的大多数字段都来自ACF pro插件,其中一些使用的是ACF的中继器,我的PHP不好,如何将下面的代码转换为简码?
userPermissions
下面的代码是否正确?如果我错了,请纠正我。
<div class="row">
<?php
if( have_rows('our_golf_tours_list',161) ):
?>
<?php
while( have_rows('our_golf_tours_list',161) ): the_row();
?>
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-3 m-b-30 col-package">
<div class="packages-box">
<a href="<?php the_sub_field('title_link'); ?>"><img src="<?php the_sub_field('image'); ?>" alt="img"></a>
<div class="package-details-2">
<h3><a href="<?php the_sub_field('title_link'); ?>"><?php the_sub_field('title'); ?></a></h3>
<p><?php the_sub_field('date'); ?></p>
</div>
</div>
<div class="packages-box-bottom">
<a href="<?php the_sub_field('book_now_url'); ?>" class="btn btn-default-custom book-now-small <?php the_sub_field('hubspot_class'); ?>">Book Now <i class="fa fa-angle-right" aria-hidden="true"></i></a>
<a href="<?php the_sub_field('itinearay_url'); ?>" class="btn itinerary-blank">Itinerary </a>
</div>
</div>
<?php endwhile; ?>
<?php endif; ?>
</div>
答案 0 :(得分:1)
您的简码有一些问题:
A。该功能需要正确关闭:
function {
// your code
} // <-- You forgot the closing bracket
B。您应该使用return语句而不是echo:
您正在函数中使用echo
,但这并不是最安全的做法,因为它不能保证您的内容将呈现在您认为的位置。
最好将所有内容封装到完成该功能的return语句中。
大概是这样的:
function {
// Build up content and hold it somewhere (i.e. a variable)
$content = '<h1>Fruits</h1>';
$content .= '<div>apples</div>';
$content .= '<div>oranges</div>';
// When ready, finish the function and output the content to wherever the function was called (ie the shortcode)
return $content;
}
C。您将HTML和PHP混合使用不正确:
在您最初的echo语句中,您尝试将所有HTML和PHP都塞满,但是两者之间必须有所区别(即打开,关闭)。
关于混合使用PHP和HTML,有很多方法和意见,您的工作取决于构建函数逻辑的方式。无论如何,作为起点,这是将HTML和PHP混合使用的方式:
$newContent = "pears";
$content .= '<div>' . $pears . '</div>';
有关此的大量教程和文章。