web-dev-qa-db-ja.com

HTMLの<title> </title>タグの区切り記号を変更する

私はWP 4.7.3とカスタムテンプレートセット(mh-magazine)を使用しています。

デフォルトでは、WPは "Page title" - "Blog title"のようなタイトルタグを設定します。

今私が達成したいのは、レイアウト上の理由から " - "をパイプ記号に置き換えることだけです。そのため、処理されたHTMlは次のようになります。

マイページのタイトル私のブログのタイトル

これは簡単に達成できると思いましたが、私はPHPやWPのエキスパートではないので、助けが必要だと思います。

2
Toby

それはすべてあなたのテーマのheader.phpがどのように構成されているかに依存しますが、最も可能性の高い方法は document_title_separator filterを通してです。

add_filter ('document_title_separator', 'wpse_set_document_title_separator') ;

function
wpse_set_document_title_separator ($sep)
{
    return ('|') ;
}

可能性-1:

あなたのテーマがあれば:

  1. あなたのfunctions.phpファイルのどこかにadd_theme_support( 'title-tag' );

  2. header.phpファイル内のwp_head()関数呼び出し

それならdocument_title_separatorフィルタを使うことは @ Paul's answer のように働くでしょう - /提案された。

上記の条件を満たしてもフィルタが機能しない場合は、おそらくプラグインがそれをオーバーライドしています。フィルタが最後に実行されるように、フィルタの優先順位を上げてみてください。

function wpse262196_document_title_separator( $sep ) {
    return '|';
}
add_filter( 'document_title_separator', 'wpse262196_document_title_separator', PHP_INT_MAX );

テーマのdocument_title_separatorファイルにfunctions.phpフィルタが既に存在する場合は、そこで変更します。


可能性-2:

あなたのテーマがadd_theme_support( 'title-tag' );を含まず、代わりにheader.phpファイルに古い <title><?php wp_title(); ?></title> を使用しているかもしれません。

この場合、セパレータを変更するには、<title><?php wp_title( '|' ); ?></title>のように変更します。

注:add_theme_support( 'title-tag' );は廃止予定のため、wp_title()に戻すことを強くお勧めします。

それでもうまくいかない場合は、プラグインがwp_titleフィルタを使用して置き換えている可能性があります。その場合は、テーマのfunctions.phpファイルで以下のフィルタを使用して動作を変更してください。

function wpse262196_wp_title( $title, $sep, $seplocation ) {
    return str_replace( " $sep ", " | ", $title );
}
add_filter( 'wp_title', 'wpse262196_wp_title', PHP_INT_MAX );

テーマのwp_titleファイルにfunctions.phpフィルタが既に存在する場合は、そこで変更します。

うまくいけば、解決策があなたのために働くでしょう。

2
Fayaz

もしあなたがプラグインルートに行きたければ、あなたは Yoast SEO pluginを使うことができます。これは無料で強力なSEOツールです。

注:Yoast SEOはフル機能のSEOプラグインです。あなたがYoastの他のSEO機能を利用するつもりはなく、タイトルセパレータを変更することだけが必要な場合は、このプラグインはやり過ぎるでしょうし、与えられた他の答えは両方ともはるかに軽量であなたのニーズにより適しています。 。

  1. 他のプラグインと同じようにWordPressレポジトリからインストールしてください(あなたのWordPressインストールの中で最も簡単です)。それからそれを活動化させなさい。
  2. [Yoast]> [ダッシュボード]> [機能]に移動し、[詳細設定ページ]をオンにして[保存]をクリックします。 Yoast - turn on Advanced Settings 
  3. "Titles&Metas"オプションページをクリックしてください。一番最初のタブ( "General")では、タイトルの区切り文字をグローバルに指定することができます。 Title Separators 
1
Ian