doujiao1949 2013-07-04 14:37
浏览 4
已采纳

too long

I'm wondering if there is a more efficient way to write this, using a while loop or something. Essentially, I want to dynamically generate a number of WordPress shortcodes.

# Span 1
add_shortcode('span-1', 'span1');
function span1($atts, $content = null) {
    return generateSpan(1, $content);
}

# Span 2
add_shortcode('span-2', 'span2');
function span2($atts, $content = null) {
    return generateSpan(2, $content);
}

// ... repeating as many times as necessary

I tried this, but it didn't seem to work:

$i = 1;
while ($i < 12) {

    $functionName = 'span' . $i;
    $shortcodeName = 'span-' . $i;

    add_shortcode($shortcodeName, $functionName);
    $$functionName = function($atts, $content = null) {
        return generateSpan($i, $content);
    };

    $i++;

}
  • 写回答

2条回答 默认 最新

  • dongyupan4850 2013-07-04 15:54
    关注

    I know it doesn't answers the "dynamically generate" issue, but, alternatively, you could use the attributes for that: [span cols="1"] -> [span cols="12"].

    add_shortcode('span', 'span_shortcode');
    
    function span_shortcode( $atts, $content = null ) 
    {
        if( isset( $atts['cols'] ) )
        {
           return generateSpan( $atts['cols'], $content );
        }  
    }
    

    And the third parameter of the callback can be used to detect the current shortcode:

    for( $i=1; $i<13; $i++ )
        add_shortcode( "span-$i", 'span_so_17473011' );
    
    function span_so_17473011( $atts, $content = null, $shortcode ) 
    {
        $current = str_replace( 'span-', '', $shortcode ); // Will get $i value
        return generateSpan( $current, $content );
    }
    

    Reference: current_shortcode() - detect currently used shortcode

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法