在 functions.php Wordpress 函数 add_shortcode 中添加 php 代码
Add php code inside the function add_shortcode in functions.php Wordpress
如何在 functions.php
中的函数 add_shortcode 中添加 php 代码
例如:
<?php $images = get_field('img_novinki'); if( $images ) { ?>
<div id="carousel" class="flexslider">
<ul class="slides gallery">
<?php foreach( $images as $image ): ?>
<li>
<a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="<?php echo $image['alt']; ?>" /></a>
</li>
<?php endforeach; ?>
</ul>
</div> <?php } ?>
函数中的简码 PHP:
function my_novinki( $atts )
{
return '';
}
add_shortcode( 'my_novinki', 'my_novinki');
据我所知,您需要执行以下操作。在 functions.php 添加:
function my_novinki( $atts )
{
$images = get_field('img_novinki');
if( $images ) {
echo '<div id="carousel" class="flexslider">';
echo '<ul class="slides gallery">';
foreach( $images as $image ):
echo '<li>';
echo '<a href="'. $image["url"] .'"><img src="'.$image["sizes"]["thumbnail"] .'" alt="'. $image["alt"] .'" /></a>';
echo '</li>';
endforeach;
echo '</ul>';
echo '</div>';
}
}
add_shortcode( 'my_novinki', 'my_novinki');
然后可以使用 [my_novinki]
调用,或者如果在 php 模板中使用 <?php echo do_shortcode['my_novinki'];
请参阅 Codex:“..简码调用的函数不应产生任何类型的输出。简码函数应该 return 用于替换简码的文本。”
您需要将代码包装在 ob_start() 和 ob_get_clean() 中:
add_shortcode( 'my_novinki', function my_novinki( $atts ) {
ob_start();
$images = get_field( 'img_novinki' );
if( $images ) { ?>
<div id='carousel' class='flexslider'>
<ul class='slides gallery'> <?php
foreach( $images as $image ) { ?>
<li>
<a href='<?php echo $image['url']; ?>'>
<img src='<?php echo $image['sizes']['thumbnail']; ?>' alt='<?php echo $image['alt']; ?>' />
</a>
</li> <?php
} ?>
</ul>
</div> <?php
}
$out = ob_get_clean();
return $out;
});
如何在 functions.php
中的函数 add_shortcode 中添加 php 代码例如:
<?php $images = get_field('img_novinki'); if( $images ) { ?>
<div id="carousel" class="flexslider">
<ul class="slides gallery">
<?php foreach( $images as $image ): ?>
<li>
<a href="<?php echo $image['url']; ?>"><img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="<?php echo $image['alt']; ?>" /></a>
</li>
<?php endforeach; ?>
</ul>
</div> <?php } ?>
函数中的简码 PHP:
function my_novinki( $atts )
{
return '';
}
add_shortcode( 'my_novinki', 'my_novinki');
据我所知,您需要执行以下操作。在 functions.php 添加:
function my_novinki( $atts )
{
$images = get_field('img_novinki');
if( $images ) {
echo '<div id="carousel" class="flexslider">';
echo '<ul class="slides gallery">';
foreach( $images as $image ):
echo '<li>';
echo '<a href="'. $image["url"] .'"><img src="'.$image["sizes"]["thumbnail"] .'" alt="'. $image["alt"] .'" /></a>';
echo '</li>';
endforeach;
echo '</ul>';
echo '</div>';
}
}
add_shortcode( 'my_novinki', 'my_novinki');
然后可以使用 [my_novinki]
调用,或者如果在 php 模板中使用 <?php echo do_shortcode['my_novinki'];
请参阅 Codex:“..简码调用的函数不应产生任何类型的输出。简码函数应该 return 用于替换简码的文本。”
您需要将代码包装在 ob_start() 和 ob_get_clean() 中:
add_shortcode( 'my_novinki', function my_novinki( $atts ) {
ob_start();
$images = get_field( 'img_novinki' );
if( $images ) { ?>
<div id='carousel' class='flexslider'>
<ul class='slides gallery'> <?php
foreach( $images as $image ) { ?>
<li>
<a href='<?php echo $image['url']; ?>'>
<img src='<?php echo $image['sizes']['thumbnail']; ?>' alt='<?php echo $image['alt']; ?>' />
</a>
</li> <?php
} ?>
</ul>
</div> <?php
}
$out = ob_get_clean();
return $out;
});