我的插件实现了一个关于wp最佳实践的短代码,但出现了一个奇怪的行为。首先,shortcode在测试站点上工作得很好,但在生产环境中却不工作,插件代码完全相同,但环境略有不同。在生产站点上,问题如下:如果我向shorcode添加一个参数,那么shortcode似乎根本不会被解释和解析。因此,将此添加到我的帖子正文中:
[my_shortcode_tag category=who]
[my_shortcode_tag category="who"]
[my_shortcode_tag category=\'who\']
[my_shortcode_tag category=]
结果在前端具有相同的显示,不会解析和解释shortocde。只要我再添加一个没有参数的,如下所示:
[my_shortcode_tag category=who]
[my_shortcode_tag category="who"]
[my_shortcode_tag category=\'who\']
[my_shortcode_tag category=]
[my_shortcode_tag]
所有短代码开始工作!。。。每个人都被解释,显示正确。
以下是快捷码功能代码:
function my_shortcode_tag($atts = [], $content = null, $tag = \'\')
{
// normalize attribute keys, lowercase
$atts = array_change_key_case((array)$atts, CASE_LOWER);
// override default attributes with user attributes
$sc_atts = shortcode_atts([
\'height\' => \'400px\',
\'category\' => \'all\'
], $atts, $tag);
$result = \'nothing\';
$category = $sc_atts[\'category\'];
$height = \'height="\' . $sc_atts[\'height\'] . \'"\';
DOFF_Utils::getLogger()->info("doff_show_office_stats_fn");
// here some code to change result, based on $category and $height values
$result .= \'[gfchartsreports gf_form_id="9" type="total" maxentries="10000" custom_search_criteria=\\\'{"status":"active","field_filters":{"0":{"key":"24","value":"user:dental_office_id"}}}\\\']\';
$result .= \' \' . __(\'questionnaires envoyés\');
$result .= \'<br/>\';
$result .= \'[gfchartsreports gf_form_id="8" type="total" maxentries="10000" custom_search_criteria=\\\'{"status":"active","field_filters":{"0":{"key":"295","value":"user:dental_office_id"}}}\\\']\';
return do_shortcode($result);
}
知道这里有什么问题吗?