add\\u filter()可以用来拦截插件函数吗?
我没有取得任何成功,所以我想也许我做错了。
该插件是“All-in-One SEO”,我试图拦截的函数位于All\\u-in\\u One\\u SEO\\u Pack类中,其名为get\\u original\\u title()
这是我试图拦截的代码。。。具体来说,当调用is\\u 404()方法时。。。
class All_in_One_SEO_Pack {
function rewrite_title($header) {
global $aioseop_options;
global $wp_query;
if (!$wp_query) {
$header .= "<!-- no wp_query found! -->\\n";
return $header;
}
$post = $wp_query->get_queried_object();
// the_search_query() is not suitable, it cannot just return
global $s;
global $STagging;
if (is_home() && !$this->is_static_posts_page()) {
$title = $this->internationalize($aioseop_options[\'aiosp_home_title\']);
if (empty($title)) {
$title = $this->internationalize(get_option(\'blogname\'));
}
$title = $this->paged_title($title);
$header = $this->replace_title($header, $title);
} else if (is_attachment()) {
$title = get_the_title($post->post_parent).\' \'.$post->post_title.\' – \'.get_option(\'blogname\');
$header = $this->replace_title($header,$title);
} else if (is_single()) {
// we\'re not in the loop :(
$authordata = get_userdata($post->post_author);
$categories = get_the_category();
$category = \'\';
if (count($categories) > 0) {
$category = $categories[0]->cat_name;
}
$title = $this->internationalize(get_post_meta($post->ID, "_aioseop_title", true));
if (!$title) {
$title = $this->internationalize(get_post_meta($post->ID, "title_tag", true));
if (!$title) {
$title = $this->internationalize(wp_title(\'\', false));
}
}
$title_format = $aioseop_options[\'aiosp_post_title_format\'];
/*
$new_title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title_format);
$new_title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $new_title);
$new_title = str_replace(\'%post_title%\', $title, $new_title);
$new_title = str_replace(\'%category%\', $category, $new_title);
$new_title = str_replace(\'%category_title%\', $category, $new_title);
$new_title = str_replace(\'%post_author_login%\', $authordata->user_login, $new_title);
$new_title = str_replace(\'%post_author_nicename%\', $authordata->user_nicename, $new_title);
$new_title = str_replace(\'%post_author_firstname%\', ucwords($authordata->first_name), $new_title);
$new_title = str_replace(\'%post_author_lastname%\', ucwords($authordata->last_name), $new_title);
*/
$r_title = array(\'%blog_title%\',\'%blog_description%\',\'%post_title%\',\'%category%\',\'%category_title%\',\'%post_author_login%\',\'%post_author_nicename%\',\'%post_author_firstname%\',\'%post_author_lastname%\');
$d_title = array($this->internationalize(get_bloginfo(\'name\')),$this->internationalize(get_bloginfo(\'description\')),$title, $category, $category, $authordata->user_login, $authordata->user_nicename, ucwords($authordata->first_name), ucwords($authordata->last_name));
$title = trim(str_replace($r_title, $d_title, $title_format));
// $title = $new_title;
// $title = trim($title);
$title = apply_filters(\'aioseop_title_single\',$title);
$header = $this->replace_title($header, $title);
} else if (is_search() && isset($s) && !empty($s)) {
if (function_exists(\'attribute_escape\')) {
$search = attribute_escape(stripcslashes($s));
} else {
$search = wp_specialchars(stripcslashes($s), true);
}
$search = $this->capitalize($search);
$title_format = $aioseop_options[\'aiosp_search_title_format\'];
$title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title_format);
$title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $title);
$title = str_replace(\'%search%\', $search, $title);
$header = $this->replace_title($header, $title);
} else if (is_category() && !is_feed()) {
$category_description = $this->internationalize(category_description());
if($aioseop_options[\'aiosp_cap_cats\']){
$category_name = ucwords($this->internationalize(single_cat_title(\'\', false)));
}else{
$category_name = $this->internationalize(single_cat_title(\'\', false));
}
//$category_name = ucwords($this->internationalize(single_cat_title(\'\', false)));
$title_format = $aioseop_options[\'aiosp_category_title_format\'];
$title = str_replace(\'%category_title%\', $category_name, $title_format);
$title = str_replace(\'%category_description%\', $category_description, $title);
$title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title);
$title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $title);
$title = $this->paged_title($title);
$header = $this->replace_title($header, $title);
} else if (is_page() || $this->is_static_posts_page()) {
// we\'re not in the loop :(
$authordata = get_userdata($post->post_author);
if ($this->is_static_front_page()) {
if ($this->internationalize($aioseop_options[\'aiosp_home_title\'])) {
//home title filter
$home_title = $this->internationalize($aioseop_options[\'aiosp_home_title\']);
$home_title = apply_filters(\'aioseop_home_page_title\',$home_title);
$header = $this->replace_title($header, $home_title);
}
} else {
$title = $this->internationalize(get_post_meta($post->ID, "_aioseop_title", true));
if (!$title) {
$title = $this->internationalize(wp_title(\'\', false));
}
$title_format = $aioseop_options[\'aiosp_page_title_format\'];
$new_title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title_format);
$new_title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $new_title);
$new_title = str_replace(\'%page_title%\', $title, $new_title);
$new_title = str_replace(\'%page_author_login%\', $authordata->user_login, $new_title);
$new_title = str_replace(\'%page_author_nicename%\', $authordata->user_nicename, $new_title);
$new_title = str_replace(\'%page_author_firstname%\', ucwords($authordata->first_name), $new_title);
$new_title = str_replace(\'%page_author_lastname%\', ucwords($authordata->last_name), $new_title);
$title = trim($new_title);
$title = $this->paged_title($title);
$title = apply_filters(\'aioseop_title_page\',$title);
$header = $this->replace_title($header, $title);
}
} else if (function_exists(\'is_tag\') && is_tag()) {
global $utw;
if ($utw) {
$tags = $utw->GetCurrentTagSet();
$tag = $tags[0]->tag;
$tag = str_replace(\'-\', \' \', $tag);
} else {
// wordpress > 2.3
$tag = $this->internationalize(wp_title(\'\', false));
}
if ($tag) {
$tag = $this->capitalize($tag);
$title_format = $aioseop_options[\'aiosp_tag_title_format\'];
$title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title_format);
$title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $title);
$title = str_replace(\'%tag%\', $tag, $title);
$title = $this->paged_title($title);
$header = $this->replace_title($header, $title);
}
} else if (isset($STagging) && $STagging->is_tag_view()) { // simple tagging support
$tag = $STagging->search_tag;
if ($tag) {
$tag = $this->capitalize($tag);
$title_format = $aioseop_options[\'aiosp_tag_title_format\'];
$title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title_format);
$title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $title);
$title = str_replace(\'%tag%\', $tag, $title);
$title = $this->paged_title($title);
$header = $this->replace_title($header, $title);
}
} else if (is_archive()) {
$date = $this->internationalize(wp_title(\'\', false));
$title_format = $aioseop_options[\'aiosp_archive_title_format\'];
$new_title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title_format);
$new_title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $new_title);
$new_title = str_replace(\'%date%\', $date, $new_title);
$title = trim($new_title);
$title = $this->paged_title($title);
$header = $this->replace_title($header, $title);
} else if (is_404()) {
$title_format = $aioseop_options[\'aiosp_404_title_format\'];
$new_title = str_replace(\'%blog_title%\', $this->internationalize(get_bloginfo(\'name\')), $title_format);
$new_title = str_replace(\'%blog_description%\', $this->internationalize(get_bloginfo(\'description\')), $new_title);
$new_title = str_replace(\'%request_url%\', $_SERVER[\'REQUEST_URI\'], $new_title);
$new_title = str_replace(\'%request_words%\', $this->request_as_words($_SERVER[\'REQUEST_URI\']), $new_title);
$new_title = str_replace(\'%404_title%\', $this->internationalize(wp_title(\'\', false)), $new_title);
$header = $this->replace_title($header, $new_title);
}
return $header;
}}