web-dev-qa-db-ja.com

カテゴリのタイトルからアーカイブを削除

カテゴリページのタイトルの「 アーカイブ 」を削除するにはどうすればよいですか。
Twenty TwelveテーマとWordPress 4を使用しています。

<head>
<title>"name of category" Archives  | "name of sites"</title>
</head>
4
sidlo

あなたがyoast SEOプラグインを使用しているなら、最も簡単な方法は "titles & metas-> Taxonomies->category"からアーカイブWordを削除することです。

見つける:

%%term_title%% Archives %%page%% %%sep%% %%sitename%%

それを置き換えます:

%%term_title%% %%page%% %%sep%% %%sitename%%
6
Zammuuz

いくつかの興味深い点:

  • wp_title()のコードは/wp-includes/general-template.phpにあります。この関数は2つのフィルタを実行します:wp_title_partswp_title、そしてどちらの場合でもあなたは標準のwp_title()の結果を操作する機会があります。
  • テーマ内のfunctions.phpを見てください。関数twentytwelve_wp_titleは、12人固有の魔法を実行し、優先順位 10 wp_titleフィルタを使用して起動されます。

もしあなたがフィルタに慣れていないのであれば、これに興味を持ちすぎる前にそれを調べることを強くお勧めします。しかしながら、私の提案したアプローチは以下のステップを踏みます:

  1. WPと12人に自分のことをさせましょう。
  2. 事後に、そしてwp_title()がその文字列を返す直前に、wp_titleフィルターを使ってそれを操作する機会があります。
    • これが機能するためには、after _ 12がその役割を果たしていることを確認するために、 10 より高い優先順位を想定する必要があります。

したがって、私は次の関数をお勧めします。これは、(後で実行される)優先度が 11 wp_titleフィルタを使用して呼び出されます。

function overwrite_twentytwelve_archives_title($title, $sep)
{
    // Look for the string " Archives" (note the leading space), 
    // and strip it out of $title:
    return preg_replace("/ Archives/", "", $title);
}
add_filter("wp_title", "overwrite_twentytwelve_archives_title", 11, 2);

私はここでいくらか自由を取ったが、「アーカイブ」の前には取り除かなければならなかった追加のスペースがあると仮定した(コメントに記されている)。必要に応じて調整してください。基本的に、私がここで提案したのは、Wordpressがその通常の業務を進め、実際に表示される直前に "Archives"ビットを削除することを許可することです。私はこれが正しく動作するようにテストしていないことに注意してください、そしてそれがうまくいかない場合、私は私の側でリンガーを通してそれを入れるのが嬉しいです。

2
Justin Bell