サポート » テーマ » 固定ページでのリスト表示から詳細表示ページへの遷移について

  • 解決済 tokuta

    (@tokuta)


     フォーラムの皆様、よろしくお願いします。

     携帯用の固定ページに表示した投稿記事の一覧から、single.phpを呼び出し、その固定ページのpage-idにより条件分岐させることで、携帯専用のページを表示しようとしましたが、PC用のページからsingle.phpを呼び出したときも、携帯用のページが表示されてしまいます。携帯用の固定ページからsingl.phpを呼び出したときだけ、その固定ページのpage-idを読み取って、携帯用のページを表示したいと思いますが、どうもうまく行きません。

     一部ですが、コードは以下のようになります。

     <?php if(in_category(‘tidings’)){ ?>
     <?php if(query_posts(‘page_id=127’)); ?>
     <?php get_template_part(‘custom’,’tidings2′); ?>

     カテゴリがtidingsで、page-idが127の場合、custom-tidings2.phpというカスタムテンプレートを読み込もうとしているわけですが、上述したように、携帯用の固定ページからこのsingle.phpを呼び出しても、pc用のファイルから呼び出しても、custom-tidings2.phpを表示することになってしまいます。これは多分、if(query_posts(‘page_id=127’))という構文に原因があり、サイトのなかにpage_id=127に該当するファイルが存在していれば、携帯用のページから呼び出しても、pc用のページから呼び出しても、if文の条件を満たすことになり、custom-tidings2.phpを表示することになってしまうように思われます。single.phpを呼び出した直前の固定ページのpage-idが取得できれば、この条件分岐も、おそらくはうまく行くように思われますが、この方法がわからないばかりに、現在、途方にくれています。
     single.phpを呼び出した固定ページのpage-idの取得法をご教授いただければ幸いです。

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

    (@jim912)

    tokutaさん、こんにちは。

    query_postsは、条件に該当する記事を取得するためのもので、どこから呼び出されたのか判別させるためのものではありません。

    リファラーという情報で、呼び出し元を確認する方法もありますが、これはユーザー側で停止させることも可能なので、人によっては動作しない可能性があります。

    あとは、固定ページからのリンクに(?ktai=1)などのパラメータを付加して判別させる方法などが考えられます。

    トピック投稿者 tokuta

    (@tokuta)

    jim912様、さっそくのアドバイス、ありがとうございます。

    便利なタグがあればいいなと思っていたので、ちょっと残念です。
    でも、これでふんぎりがつきましたので、パラメータ付加の方法で試してみたいと思います。

    お忙しいところ、大変ありがとうございました。

    トピック投稿者 tokuta

    (@tokuta)

    jim912様、こんばんは。

    パラメータ付加で試してみたところ、うまく行きました。

    リスト表示ページのパーマリンクに
    ?mobile=1″><?php the_title(); ?>
    ?mobile=1
    というパラメータを付加し、

    single.phpのなかで、

    @$_GET[“mobile”]

    でmobileの値を取得し、

    if文に加えることで、

    携帯用のカスタムテンプレート、PC用のカスタムテンプレートの選別が可能になりました。

    PCサイト、携帯サイトとも、特に問題なく稼動しています。

    いろいろアドバイスをいただき、ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「固定ページでのリスト表示から詳細表示ページへの遷移について」には新たに返信することはできません。