2011-01-19 15 views
0

以下のコードは、 "All in One SEO"パックのプラグインです。私のテーマの404ページのタイトルを変更します。私は、この特定のプラグインがどのように機能するのかを理解しています。この例では、私のテーマの404投稿タイトルのオンボード管理と矛盾しています。私のテーマのfunctions.phpからプラグインの機能を変更するにはどうしたらいいですか?

私のfunctions.phpファイルから、以下のコードでis_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 = 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 (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; 

}} 

答えて

0

テンプレートタグは、非テンプレートファイルで作業している場合、私は知らないが、彼らは、あなたがプラグインのコードを変更する気にしないならば、あなたが作成することにより、プラグインのコードのあなたの迎撃を試みることができますし、あなた自身のアクションフックを追加する。

これは、カスタムコードが独自のプラグインまたはfunctions.phpに配置されていることを除いて、プラグインコードを修正することとほぼ同じです。

カスタムアクションフックに慣れていない場合は、ここでの処理を説明記事です:http://archive.extralogical.net/2007/06/wphooks/

+0

こんにちはケヴ、IIUYCは、あなたの答えは、私はそれを変更するために、プラグインのコードに物理的にアクセスを持っていることが必要です。私はプラグインのコードを物理的に変更せずにAll-in-one-SEOクラスオブジェクトの存在を検出したときに動作するshippingテーマのfunctions.phpに配置できる解決策を探しています。 –

+0

@Scott B:ロジャー、幸運 – kevtrout

関連する問題