サポート » プラグイン » all in one seo pack で生成されるタイトルを他の箇所で流用したい

  • 解決済 horipy

    (@horipy)


    現在all in one seo pack を利用して、各ページのタイトルを修正し、SEO対策を気取っております。

    この、各ページ・投稿にて指定したタイトルのテキストを、デザインの中で利用したいと思っているのですが、可能なものなのでしょうか?

    プラグイン側が、基本的にWPが生成するタイトル(A)をよんで、必要に応じて最終的にタイトル(B)を変更しているんだと想像しているのですが、そのタイトル(B)をページデザインの中でも利用したいのです。

    たとえば、タイトルを
    (A)

    ブログタイトル│ポストタイトル

    をプラグインで、
    (B)

    キーワード付きポストタイトル│ブログタイトル

    というような修正をしている場合に、(B)をタイトルだけでなく、他の箇所でも利用したいのです。

    (A)なのであれば、現状のテーマだと

    <?php bloginfo('name'); ?><?php wp_title(); ?>

    をいれると実現できています。
    ※他の人間が触っていたので、もとのテーマがなんだか不明なのですが、 配布されていたテーマのイメージとかを少しいじっただけと聞いています。

    あまり大きく手をいれるつもりはありませんが、コードに少し手を加えるくらいでできるのであれば、と思いご相談させて頂きました。

    宜しくお願い致します。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター jim912

    (@jim912)

    horipyさん、こんにちは。

    可能か不可能かと言われると可能なのですが、それなりに入り組んでいます。
    現状のall in one seo packでは、置き換えるタイトルの生成と置き換えの処理が切り話されていないため、どうしてもプラグイン本体の改変が必要になります。

    一番望ましいと思われるのは、aioseop.class.phpの629行目(ver1.6.5)から記述されているrewrite_titleメソッドをコピーして別名のメソッドとし、置き換え処理を呼び出している部分を削除、生成されたタイトルをreturnなりechoなりするように改変。そのメソッドをテンプレートから呼び出す方法だと思います。

    shokun0803

    (@shokun0803)

    ちょっと強引ですが、私は以下のようにして使用しています。

    <?php
    	if( !is_front_page() ) { // フロントページ以外の場合
    		global $aiosp;
    		$title = $aiosp->internationalize(get_post_meta($post->ID, "_aioseop_title", true));
    		echo $title;
    	}
    ?>

    この例ではheader.phpでタイトル以外の場所でタイトルを表示する必要があって使っている例です。
    なにかの参考になれば;)

    horipy

    (@horipy)

    jim912 さん、shokun0803 さん、

    お二人とも早速のご回答ありがとうございます!!

    jim912 さんのおっしゃられるとおりできればきっと素敵なのだとは思うのですが、いかんせんプログラムの知識は皆無でして。。。

    shokun0803 さんのソースを参考に、簡単に下記のようにしてみました。

    <?php
    global $aiosp;
    $title = $aiosp->internationalize(get_post_meta($post->ID, "_aioseop_title", true));
    echo $title;
    ?>
    [&nbsp;<?php bloginfo('name'); ?>&nbsp;]

    ちょっと強引という意味もよくわからないのですが(^^;)、私もheader領域での利用だったので、問題なく利用できています!!

    global宣言があまり普通使わない方法、ということなのでしょうか??
    もし、何か気をつけることなどありましたら、後学のためにご教示頂けますと幸いです。

    shokun0803

    (@shokun0803)

    All in One SEO Packはheaderのソースを書き出す直前で<title>から</title>までを書き換えるという動作をしています。ですので、そこに割り込むのはむりであることと、プラグインのコードを修正するのはあまりやりたくない(バージョンアップで消えますしね・・・)ので色々探していたら、All In One SEO Titleというプラグインを見つけまして、このソースを見ていたらタイトルだけ抜けそうな気がしたのでその部分だけ流用させてもらったと言うことです。

    強引というのは、まあ本来の使い方ではなく、テーマに直接書き込んでいますしねぇ・・・wordpressのタイトルにAll in One SEO Packのタイトルと同じものが指定してあればwordpressのタグで普通に表示はできるわけですし。
    私の場合はwordpressのタイトルは英字のみで構成し、日本語のタイトルはAll in One SEO Packのタイトル欄でまかなうというテーマを作成していたので、どうしても流用したかった、というのが理由です。

    もし、何か気をつけることなどありましたら

    そうですねぇ、All in One SEO Packプラグインが呼び出されるよりも前ではこのコードは使えませんとかですかね。functions.phpの中とかではうまく動かないかも?
    global宣言はheaderで使用していればsidebarなどでは宣言しなくても同じコードで呼び出せる(関数とかにしていなければ)かもです。
    すみません、あまり後学にはなりませんねぇ;)

    horipy

    (@horipy)

    shokun0803さん、

    お返事ありがとうございます!

    強引というのは、まあ本来の使い方ではなく、テーマに直接書き込んでいますしねぇ・・・wordpressのタイトルにAll in One SEO Packのタイトルと同じものが指定してあればwordpressのタグで普通に表示はできるわけですし。

    そうですね。確かにテーマに書くべきことではないのかもしれません。デザインと関係ないですもんね。

    私の場合は、wordpressのタイトルはシンプルに、titleはちょっと欲張って、みたいなことをしているのが、今回の動機だったりします(^^;

    そうですねぇ、All in One SEO Packプラグインが呼び出されるよりも前ではこのコードは使えませんとかですかね。functions.phpの中とかではうまく動かないかも?

    ふむふむ。なるほどです。

    そこまで手を入れることはないと思いますが、肝に銘じておきます:-)

    いろいろとご教示頂きありがとうございました!!

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「all in one seo pack で生成されるタイトルを他の箇所で流用したい」には新たに返信することはできません。