在Add_ShortCode()回调函数中使用分解时出现问题

时间:2011-11-30 作者:Sisir

Explode在add\\u shortcode()回调函数中未按预期工作。

Here is the scenario:

我实现的sortcode如下所示:

[table]
    name1 = value1;
    name2 = value2;
    name3 = value3
[/table]
我用简单的分解来制作表格。正在爆炸; 获得每一行,然后爆炸= 把它们放在右栏。但是explode没有正常工作。它在", - 等等我已经在wordpress外部测试了这个函数,以检查它在处理字符串时是否有问题,但它工作得很好。

这是您看到表格的页面http://computercarebd.com/?product=dell-inspiron-4030 当你看这张桌子时,你会看到Display 行被打断(由另一个数组元素组成)explode();) 之后14.0″

下面是它的短代码http://pastebin.com/ZYuuNb11

当您检查homepage 您将看到我在产品预览中添加的功能,我使用了相同的方法,但效果很好。我用过get_the_content() 要获取内容,请使用相同的分解方法。

因此,我认为我必须修改table\\u shortcode()回调函数的内容,以使其与explode一起工作。

谢谢,如果我够清楚,请告诉我。

function table_shortcode($atts, $content = NULL){
    $content = strip_tags($content);
    $contents = explode(\';\', $content);
    extract(shortcode_atts(array(\'width\' => \'370px\', \'align\' => \'alignright\'), $atts));

    $table = \'<div class="table \'.$align.\'" style="width:\'.$width.\';">\';
    foreach($contents as $content){
        if(!empty($content)){
            $table .= \'<div class="table_row">\';
                $row_items = explode(\'=\', $content);
                $table .= \'<div class="table_left">\'.(trim($row_items[0])).\'</div>\';
                $table .= \'<div class="table_right">\'.(trim($row_items[1])).\'</div>\';
                $table .= \'<div class="clear"></div>\';
            $table .= \'</div>\';
        }
    }
    $table .= \'</div>\';
    return $table;
}

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

必须使用更复杂的字符才能使用explode{@}. 正如rarst所说; 因为html编码的实体; 在他们身上。

结束