All In One SEO Packのタイトル書き換えを無効にしても同じように出力する方法
WordPressの有名なプラグインにAll In One SEO Packがある。All In One SEO PackのRewrite Titles(タイトル書き換え)を行うと何かと競合して動かなくなる。その対処方法。
All In One SEO Packのタイトル書き換えを無効にしても、All In One SEO Packのタイトル書き換えと同じタイトルが出力されるテンプレートタグです。
以前も似た形の記事を書きましたが、2.8.x系統に変わってから使えなくなっている上、追従が面倒なので違う方法で行っています。
All In One SEO Packのタイトル書き換えに使用しているメソッドをそのまま流用しています。
All In One SEO Packのタイトル書き換え機能は標準出力への出力をバッファし、タイトルタグを探して置換することで実現しています。
今回紹介する方法では、タイトルタグを探して置換するメソッドをそのまま使い、出力をバッファさせることなく出力しています。
やり方
1. 使っているテーマのfunctions.phpに以下のコードを追加します。
function my_title($echo = true)
{
global $aiosp;
// All In One SEO Packを使わない場合のタイトル(お好きなように変えてください)
$title = wp_title('', false);
if($title) {
$title .= ' | ';
}
$title .= get_bloginfo('name');
$title = "\n".'<title>'.$title.'</title>'."\n";
// All In One SEO Packが有効化されている場合
if (isset($aiosp)) {
$seo_title = $aiosp->output_callback_for_title($title);
if ($seo_title) {
$title = $seo_title;
}
}
//出力
if ($echo) {
echo $title;
} else {
return $title;
}
}
2. 使っているテーマのtitleを出力している部分を探し削除します。defaultテーマの場合はheader.phpの13行目の以下のコード
<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>
3. 先ほどのコードを呼び出します。
<?php my_title() ?>
置き換える部分の詳細なソース
先の説明では、書き換えるところだけなので分かり難いため、defaultテーマのheader.phpの変更前後の変更する部分の前後3行を掲載します。
変更前
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
変更後
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />
<?php my_title() ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
最後に
リキッドレイアウトの記事じゃないって??
なかなかレイアウトの説明は図などを描かなければいけないので後回しにして簡単なネタをやりました。
期待していた人は少ない(いない?)と思いますが。。。(汗
リキッドじゃないにしろレイアウトネタをやります。それ以外にも更新しなきゃいけない部分がいっぱいあるんですけどねぇ。。。(汗
あわせて読む
コメント投稿