我希望向输出中添加一个额外的ID:<div id="NEWID" class="kalec">
如果使用值调用快捷码no=0
i、 e。[photo no="0"]
我需要在输出中使用IF语句,但无法找出正确的语法。
function photo_shortcode($atts){
extract(shortcode_atts(array(
\'no\' => 1,
), $atts));
$no = ( $no != \'\' ) ? $no : 1;
$images = get_field(\'fl_gallery\');
$image = $images[$no];
if ($image) {
$credit = get_field(\'fl_credit\', $image[\'id\']);
return \'<div class="kalim"><img title="\' . esc_attr( sprintf( the_title_attribute( \'echo=0\' ) ) ) . \'" alt="\' . esc_attr( sprintf( the_title_attribute( \'echo=0\' ) ) ) . \'" src="\' . $image[\'url\'] . \'" />\' . (!empty($credit) ? \'<div [INSERT IF STATEMENT] class="kalec"><div class="kalca">\' . $image[\'caption\'] . \'</div><div class="kalcr">Credit:\' . $credit . \'</div></div>\': \'\' ) . \'</div>\' ;
}
}
SO网友:M-R
我相信,您的代码缺少多次检查。我正在尝试覆盖其中一些。例如
$no
未检查数值$image[$no]
应在访问之前验证是否存在在所有情况下,Shortcode都应返回应改进管柱的准备工作
这是固定的代码(1)、(2)和(3)。
function photo_shortcode($atts){
extract(shortcode_atts(array(
\'no\' => 1,
), $atts));
$no = is_numeric($no) ? (int) $no : 1;
$images = get_field(\'fl_gallery\');
if (isset($image[$no])) {
$image = $images[$no];
$credit = get_field(\'fl_credit\', $image[\'id\']);
ob_start();
echo \'<div class="kalim">\';
echo \'<img title="\' . esc_attr( sprintf( the_title_attribute( \'echo=0\' ) ) ) . \'" alt="\' . esc_attr( sprintf( the_title_attribute( \'echo=0\' ) ) ) . \'" src="\' . $image[\'url\'] . \'" />\';
if(!empty($credit) ) {
$id = ($no == 0) ? \'id="NEWID"\': \'\';
echo \'<div \'.$id.\' class="kalec"><div class="kalca">\' . $image[\'caption\'] .
\'</div><div class="kalcr">Credit:\' . $credit . \'</div></div>\';
}
echo \'</div>\' ;
return ob_get_clean();
}
return \'\';
}