如果可以接受,我可以建议您通过重命名所有短代码来组织短代码,使它们具有相同的名称,并将旧名称放入属性中。
例如,如果有2个短代码[shortcode1 ...]
和[shortcode2 ...]
, 然后新的短代码将[myplugin_shortcode action="shortcode1" ...]
和[myplugin_shortcode action="shortcode2" ...]
.
您的插件索引文件:
<?php
/*
Plugin Name: bla bla bla
...
*/
add_shortcode(\'myplugin_shortcode\', \'wpse8170_shortcode_handler\');
function wpse8170_shortcode_handler($atts, $content = \'\') {
$atts = shortcode_atts(array(\'action\' => false), $atts);
if (empty($atts[\'action\'])) {
return \'\';
}
require_once \'shortcodes.php\';
return call_user_func_array("wpse8170_shortcode_{$atts[\'action\']}", array($atts, $content));
}
短代码。php:
function wpse8170_shortcode_shortcode1($atts, $content = \'\') {
return \'...\';
}
function wpse8170_shortcode_shortcode2($atts, $content = \'\') {
return \'...\';
}
通过这样组织您的短代码,您将仅在真正需要时才包含带有短代码函数的php文件,而不管它是管理员还是前端页面。