Shortcode syntax errors

时间:2017-08-10 作者:JoaMika

试图编写一个短代码来创建库,但我遇到了一个分析错误。我的foreach 循环需要校正并返回正确的输出。有什么帮助吗?

function allphotos_shortcode(){

  $images = get_field(\'fl_gallery\');

  if( $images ) {
      $output .= \'<ul>\';
      foreach( $images as $image ) :
              \'<li><a href="\' . echo $image[\'url\'] .\'"><img src="\' . echo $image[\'sizes\'][\'thumbnail\'] . \'" alt="\' . echo $image[\'alt\'] . \'" /></a><p>\' . echo $image[\'caption\'] . \'</p></li>\'
         endforeach;
      $output .= \'</ul>\'
}

return $output
 }

add_shortcode(\'allphotos\', \'allphotos_shortcode\');

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

之后缺少分号</li>, </ul>, 和$output. 你也不应该echo在字符串内部串联,而不添加<li> 标记到$output. 下面是这些修复程序的代码。

function allphotos_shortcode(){

  $images = get_field(\'fl_gallery\');

  if( $images ) {
      $output .= \'<ul>\';
      foreach( $images as $image ) :
              $output .= \'<li><a href="\' . $image[\'url\'] .\'"><img src="\' . $image[\'sizes\'][\'thumbnail\'] . \'" alt="\' . $image[\'alt\'] . \'" /></a><p>\' . $image[\'caption\'] . \'</p></li>\';
         endforeach;
      $output .= \'</ul>\';
}

return $output;
 }

add_shortcode(\'allphotos\', \'allphotos_shortcode\');

结束

相关推荐

DO_SHORTCODE中的快捷码标签不起作用

我正在创建一个短代码,作为插件的一部分,我正在调用这样的模板:do_shortcode(\'[shortcodename title=\"monkeys\"]\'); 函数如下所示:function shortcodename_function($atts = []) { // stuff } 在函数内部,我试图在运行shortcode\\u atts之前打印出$atts,以确认它们在那里,但我什么也没有得到。这就像是完全忽略了我应用的属性。一旦我运行shortcode