我正在努力完成一项艰巨的任务。任务是使用可用的WP挂钩从Yoast SEO文件中删除func makeRequestcompletion(completion: @escaping (_ response:Data, _ error:NSError)->Void) {
let urlString = URL(string: "http://someUrl.com")
if let url = urlString {
let task = URLSession.shared.dataTask(with: url, completionHandler: { (data, urlRequestResponse, error) in
completion(data, error) // <-- here is I'm getting the error
})
task.resume()
}
}
。
类frontend.php
echo
有没有办法覆盖此功能并使用可用的WP挂钩删除public function head() {
global $wp_query;
$old_wp_query = null;
if ( ! $wp_query->is_main_query() ) {
$old_wp_query = $wp_query;
wp_reset_query();
}
/**
* Action: 'wpseo_head' - Allow other plugins to output inside the Yoast SEO section of the head section.
*/
do_action( 'wpseo_head' );
echo '<!-- / ', $this->head_product_name(), ". -->\n\n"; // <-- remove this
if ( ! empty( $old_wp_query ) ) {
$GLOBALS['wp_query'] = $old_wp_query;
unset( $old_wp_query );
}
return;
}
?或者有更好的方法吗?
非常感谢。
答案 0 :(得分:0)
有is a post at wordpress.stackexchange表示您可以使用挂钩get_header
和wp_head
来输出缓冲区来过滤掉:
add_action('get_header', 'ad_ob_start');
add_action('wp_head', 'ad_ob_end_flush', 100);
function ad_ob_start() {
ob_start('ad_filter_wp_head_output');
}
function ad_ob_end_flush() {
ob_end_flush();
}
function ad_filter_wp_head_output($output) {
if (defined('WPSEO_VERSION')) {
$output = str_ireplace('<!-- / Yoast WordPress SEO plugin. -->', '', $output);
}
return $output;
}
预计您的$this->head_product_name()
为/ Yoast WordPress SEO plugin.
,因此您可能需要更改...或者如果您希望将其删除“任何”,您可以将替换更改为以下内容:
$output = preg_replace('/<!-- .* -->/Us', '', $output);
但是这将删除所有注释,并且它将比字符串替换慢。