フォーラムへの返信

11件の返信を表示中 - 16 - 26件目 (全26件中)
  • トピック投稿者 yumebunseki

    (@yumebunseki)

    その後、自分なりに調べて「get_ の付いているものはPHP関数」で「付いていないものはWordPress テンプレート関数」だという違いなのだとわかりました。(で合ってますよね? >All) この違いから来る挙動の違いだと。

    >>V.J.Catkick さん
     ですよね。>言葉が足りていない。

    >>shokun0803 さん、kvex さん
     僕の英語力でどれほどお役に立てるようになるかは甚だ疑問ですが、、、そうなれるよう、助けてもらうばかりの側に居ていないようになりたいとは思っていますです。はい。
     この後もお知恵を頂くこと暫しだとは思いますが、よろしくお願い致します。m(__)m

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >>kvex さん
     ご指摘の通り get_bloginfo(‘name’) に置き換えたら上手くいきました。ありがとうございました。

     問題解決だけの話ならこれで「めでたし、めでたし」で良いのですけど、今回の件も、

    ・bloginfo(‘name’) は、こういう戻り値で、これの扱いはこうなっている(こういう扱い方をできる。こういう扱い方は出来ない)よ。
    ・get_bloginfo(‘name’) は、こういう戻り値で、これの扱いはこうなっている(こういう扱い方をできる。こういう扱い方は出来ない)よ。
    ・だから二者の違いはこうこうで、こういう使い分けを想定されていると言える。

     というような本当の意味でのレファレンスがCodexには不足しているなぁと思う次第でして、、、。「いや、それはPHPのことを或程度知っていたら常識だよ」という声も上げるかも知れませんが。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    皆さん。 まず謝罪です。 All in One SEO Pack の Titleタグの自動置き換えがオンになっているのに気付かず「反映されない!反映されない!」と見当違いなところをグルグル回っていました。^^;

    <?php
    if (is_home() && !is_paged()) {
    	echo bloginfo('name') .'|' .bloginfo('description');
    } elseif (is_front_page()) {
    	echo bloginfo('name') .'|' .bloginfo('description');
    } elseif (is_single()) {
    	echo single_cat_title() .'|'.wp_title('');
    } elseif (is_subpage()) {
    	echo (the_title('','|',true).get_the_title($post->post_parent)) .'|' .bloginfo('name');
    } elseif (is_page()) {
    	echo the_title('','|',true).bloginfo('name');
    } elseif (is_tag()) {
    	echo the_title('','|',true).get_the_tags().'|'.bloginfo('name');
    } elseif (is_404()) {
    	_e('404 Not Found','notepad-theme');
    } elseif (is_category()) {
    	echo single_cat_title().'|'.wp_title('');
    } elseif (is_tag()) {
    	echo the_tags('', ',', '').'|'.wp_title(''); wp_title('');
    } elseif (is_search()) {
    	_e('Search Results for:','notepad-theme'); echo ' ' . $s;
    } elseif ( is_day() || is_month() || is_year() ) {
    	_e('Archives:','notepad-theme'); wp_title('');
    } else {
    	echo wp_title('');
    }
    ?>

    この記述で当初の目的の「サブページの親のタイトル取得」は出来たのですが、新たな問題発生で、、、サブページのタイトル表示が「記事タイトル|サイト名親ページタイトル|」という表示になってしまいます。
    問題点は「サイト名(bloginfo(‘name’))が前に来てしまう」です。

    どうすれば後ろ(最後尾)に持ってこれるのでしょう?

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >>V.J.Catkick さん
     $post が空だから処理自体はされてても表示に出てこないのだ、ということですよね? 理屈としてはわかります。
     が、そうなると以下の質問になるのですが、、、、

     ご存じの方には素頓狂な質問だとは思いますが、ループってどこからどこまでなのでしょうか? ループという概念自体はわかるのですが実際の処理に於いてどこからはループに該当するのか(逆にどこはループじゃないのか)がCodexとかを読んでいっても(ループでどういう処理ができる的な話は書いてあっても)充分に明示的な説明がなく、イマイチ分かっていませんので、これの説明を下さるとありがたいです。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >>shokun0803 さん
     コメントありがとうございます。

     現在 function.php に以下の記述を入れてサブページがどうか判定するようにしていて

    function is_subpage() {
        global $post;
            if ( is_page() && $post->post_parent ) {
                   $parentID = $post->post_parent;
                   return $parentID;
            } else {
                   return false;
            };
    };

    header.php には(前後略)

    } elseif (is_subpage()) {
    	global $post;
    	_e("the_title().'|'.get_the_title(is_subpage()).'|'.bloginfo('name')",'notepad-theme');
    } elseif

    と記述してみたのですが上手くいきません。
    どこがおかしいか、不足等を指摘して下さると助かります。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >>pluto1234 さん
    >>jim912 さん

     ありがとうございました。 どちらも正常動作確認しました(今のこと必要ないけど動作確認のために孫ページを作ってみての動作も)。

     個人的感覚次元ですがpluto1234 さん記述のほうが若干サーバのレスポンスが早いような気がしますのでこちらを採用することにさせて貰います。

     また、ご両人とも、単純にプラグインの改造という点だけでなく、こういう記述のするのだという点で非常にPHP初学者には参考になりました点をお礼申し上げます。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    追記です。

    また、各記事をタグで拾って一つのページに一覧表示させるページを作った場合に、
    「タグ名(カテゴリー) | サイト名」
    ともさせたいです。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >>pluto1234 さん
    > yumebunsekiさんの方法だと、〜以下略

     それ(孫ページが以下が在ると一緒くたにされる)は、たぶんそうだろうと予想していました。
     ので、より汎用性の在るコードを示して下さってありがとうございます。 助かります。

    >>jim912
    さん
     も同じくで骨折りありがとうございます。 まだ実装して試していないですけど、一先ずお礼まで。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >>jim912 さん
     有益なご助言ありがとうございます。
     ただ、お提示頂いたコードをそのまま使った処、何も表示されなくなりました。
     この後、色々試す内で、親ページ(正確には子ページとして下階層になっているのではない上位階層ページ群)用のテンプレートにプラグイン Next Page のナビが入る記述を入れてみると「親ページ間だけ(子ページは無視したかたち)の移動リンク」は表示されました。

     そこで、この現象を手掛かりにWordPress Codex(日本語、英語両方)の関数の説明を追っ掛けていって下記記述を思い付きました。で実際実装してみると見事ビンゴ!でした。

    function flatten_page_list($exclude = ”) {
    $args = ‘sort_column=menu_order&sort_order=asc’;

    function flatten_page_list($exclude = ”) {
    global $post;
    if ( is_page() && $post->post_parent ) {
    $args = ‘sort_column=menu_order&sort_order=asc&child_of=’ . $post->post_parent;
    } else {
    $args = ‘sort_column=menu_order&sort_order=asc&parent=’ . $post->post_parent;
    }

    PHP初心者ながらjim912さんの示してくれた記述だと「&parent に 1 が入る($post->post_parent; がture なのだから)」ので、これでget_pagesすると上の階層のリストが返ってくるという結果になったのだろうと推測しましたが、これで合ってますかね?
     だとすると、$post->post_parent; がture で 1 が返ってくるのだから parent を child_of に変えれば良いのではないか?とWordPress Codex EN “get_pages” 読込んでて思い付いた次第。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >>pluto1234 さん
     返信ありがとうございます。
     さっそくプラグイン Next Page を実装してみましたが、「子ページ間で前後移動できるナビ」は付いたのは希望通りなのですが、前後を挟む親ページに対してまでナビに組み込まれてしまい困っています。

     具体的には、
    ページA
    ページB
     [ページBを親とするページ群]
      ページB-A
      ページB-B
      ページB-C
      ページB-D
      ページB-E
    ページC
    ページD

    という構造で、プラグイン Next Page のナビが入る記述を入れて子ページ用のテンプレートを別に作成、これで子ページを作成。親ページ用のテンプレートにはプラグイン Next Page のナビが入る記述は入れていない。

     この状態でページを構成すると、ページB-Aの「前に」ナビリンクとして「ページBへのリンク」が、ページB-Eの「次へ」のナビリンクに「ページC」のナビリンクが埋め込まれてしまいます。(ページB、ページCへ移動するとナビリンクを付けていないので当然ナビリンク表示は消えるのだが)

     希望としては当初の「子ページ間だけの移動リンク」の設置と共に、「親ページ間だけ(子ページは無視したかたち)の移動リンク」も設置したいと思っているのですが、どうすれば可能になるかお教え頂ければありがたく思います。

    トピック投稿者 yumebunseki

    (@yumebunseki)

    >> aimaim さん
     コメントありがとうございます。
     やっぱりそうですか、、、。
     というのは質問をアップした後に「iframe タグで嵌め込むしかないかなぁ、、、」と思ってたもので。
     文字化けが発生して文字コードセットを揃えるのにスクリプトの内容を書き換え調整は要しましたが、iframe タグで嵌め込んで期待した通りの動作になりました。
     ご助言ありがとうございました。

11件の返信を表示中 - 16 - 26件目 (全26件中)