1) 我想我解决了:检查内容是否包含我的短代码:
a) 因此,在我的顶部(外部)插件文件中设置:
添加过滤器(“pre\\u get\\u document\\u title”、“dwnz\\u filter\\u pagetitle”,20);
b) 之后在同一文件中添加:
函数dwnz\\u filter\\u pagetitle($title){//get\\u post甚至在我需要一个页面而不是一个post时起作用
$content=get\\u post();
if(has\\u shortcode($content->post\\u content,\'my\\u plugin\\u shortcode\')){
$new_page_title = get_something_from_my_database();
$page_title = $new_page_title;
return ($page_title);
}
}
2) 另外:我解决了一个类似的问题:如何确保我的JS只为我的插件内容排队(而我让它在所有输出上排队,这是不必要的)
a) 因此,在我的顶部(外部)插件文件中设置:
添加\\u shortcode(\'my\\u plugin\\u shortcode\',\'my\\u top\\u function\');
b) 在同一文件中:
function my_top_function($atts, $content = \'\', $tag){
$obj = new my_plugin_class (\'my_title\', \'my_version\');
$html = $obj->some_method();
return ($html);
}
c)在my\\u plugin\\u类中,在某些方法中,首先根据您的输入和逻辑创建my\\u html和JS标记。(我正在从数据库中提取一些标记位置的google JS)。然后,我排队等待一行对Google的正常引用,再加上另一行将我的动态JS附加到WP队列,以便WP以符合标准的方式发布它。关键是,只有当您的短代码调用了顶部的代码时,才会发生所有这些情况。
$google_api_key = $this->get_google_api_key();
$google_include = \'https://maps.googleapis.com/maps/api/js?\'
. \'v=3.exp&key=\'.$google_api_key;
$script_id = $this->plugin_name.\'_googlemaps\';
wp_enqueue_script( $script_id,
$google_include,
array( \'jquery\' ), $this->version, true );
wp_add_inline_script($script_id,
$my_dynamic_js_string, \'after\' );
....
return($my_html);
我希望这有帮助。我不熟悉这里的礼仪。