用于自定义cms的短代码插件,如wordpress短代码插件

时间:2013-11-27 09:04:25

标签: php wordpress plugins content-management-system shortcode

我为自己创建了一个自定义CMS,并且按照我的预期运行了一个插件系统。

现在我想基于短代码创建插件, 例如:     [gallery attr1 = 100 attr2 =“string”]和[mycode title ='message'color ='#F00'] Hello World![/ mycode]

我想在我的CMS中处理上面提到的短代码。 函数将用HTML替换短代码并获得&将属性设置为mySQL查询或其他内容的参数。

可能是正则表达式会有所帮助,我不是正则表达式的专家。如果存在其他微笑或好方法,我会不喜欢使用这样的正则表达式。

CMS使用PHP和mySQL开发。

我访问了wordpress开发者网站并获得了概念,我已经创建了注册或设置插件,菜单,主题边栏等功能。

我认为这个信息足以说明问题,因为我可以用这种方式解释。

提前谢谢

1 个答案:

答案 0 :(得分:1)

此代码解决了逻辑

function plugin_sortcode($contents) {
    global $SORTCODES, $DATA;

    foreach ($SORTCODES as $name => $fn) {
        $attr = array();
        preg_match_all("/\[" . $name . " (.*?)\]/", $contents, $matches);
        if ($matches[0]) {

            $code = $matches[0][0];
            if (isset($matches[1])) {
                $attrs = $matches[1][0];
                $attrs = explode(" ", $attrs);
                foreach ($attrs as $values) {
                    $attrs1 = explode("=", $values);
                    $attr[$attrs1[0]] = $attrs1[1];
                }
            }

            $data = $fn($attr, $DATA);
            $contents = str_replace($code, $data, $contents);
        }
    }

    return $contents;
}