我正在尝试为我的网站创建一个插件系统,以便在我想添加/调整某些内容时不必修改任何代码。但我不确定什么是最好的方法。
例如,我正在尝试创建一个插件能够操作帖子的系统。例如,帖子:
克里斯托弗·诺兰(Christopher Nolan)的Interstellar在票房收入总计6.633亿美元。更多
http://en.wikipedia.org/wiki/Interstellar_%28film%29
我正在尝试创建一个可将所有网址更改为可点击链接的插件。该插件将是一个php函数,如下所示:
<?php
function linkify($content) {
return preg_replace('@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?)?)@', '<a href="$1" target="_blank">$1</a>', $content);
}
创建插件后,我这样做:
在插件文件夹中包含“Linkify.plugin.php”文件所在的所有文件。还有另一个文件“Linkify.plugin.init.php”,其中包含有关插件的信息以及插件的工作位置on(对于这个例子,它将在帖子内部工作):
<?php
$name = 'Linkify Plugin';
$area_to_work_in = 'posts';
$function_name = 'linkify';
....
然后在用于输出帖子内容的函数内部,我这样做:(PHP代码)
foreach($plugins_for_post as $plugin) {
$story_content = $plugin['function_name']($story_content);
// $plugin['function_name'] is the name of the function, which is "linkify"
// $story_content is the argument here
}
这将输出内容,其中URL现在是一个链接。
这是一种不错而有效的方法吗?它会引起任何问题吗?如果您有任何建议或想法,请分享,我真的很感激。
非常感谢你阅读。