サポート » 使い方全般 » 固定ページ間のデータ受渡し方法

  • 解決済 sunagimo

    (@sunagimo)


    もろもろ試したのですが中々、うまくいかず困っております。
    恐縮ですがわかる方がいましたらご教示ください。

    現在、ページ[A]→[B]があり、
    [A]ページの任意で選択したデータをPOST,GETで[B]ページへ送ろうとしていますがうまくいきません。

    どちらも試したのですが、[B]ページに行った際に値が参照できません。

    いろいろ調べて、
    http://wpxtreme.jp/search-with-custom-fields-in-url-query-parameters

    にたどり着き試してみたのですが、
    こちらを行うとpage_idと上記の選択データははURL上のクエリストリングで表示されていますが、
    「ページが見つかりません」となってしまいます。

    http://hogehoge.jp/?page_id=XXX → これは問題なく表示されます。
    http://hogehoge.jp/?page_id=XXX&data_a=XXX&data_b=XXX → 「ページが見つかりません」

    となります。
    回避方法、または別の方法がお分かりの方いましたらご教示ください。

    また、既出でしたら申し訳ありません。 

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

    (@jim912)

    クエリストリングの中に、page_id以外に

    ‘m’, ‘p’, ‘posts’, ‘w’, ‘cat’, ‘withcomments’, ‘withoutcomments’, ‘s’, ‘search’, ‘exact’, ‘sentence’, ‘calendar’, ‘page’, ‘paged’, ‘more’, ‘tb’, ‘pb’, ‘author’, ‘order’, ‘orderby’, ‘year’, ‘monthnum’, ‘day’, ‘hour’, ‘minute’, ‘second’, ‘name’, ‘category_name’, ‘tag’, ‘feed’, ‘author_name’, ‘static’, ‘pagename’, ‘error’, ‘attachment’, ‘attachment_id’, ‘subpost’, ‘subpost_id’, ‘preview’, ‘robots’, ‘taxonomy’, ‘term’, ‘cpage’, ‘post_type’, ‘embed’

    のいずれかが含まれていませんでしょうか。これらは、WordPressがクエリの条件として受け付けるものとなるため、固定ページが表示されない原因となりえます。

    参考:WordPress Query Vars

    ご連絡有難うございます。
    丁寧なご返答有難うございます。

    念のため確認してみましたが、ご指摘のクエリストリングは使用していません。

    また名前も予約語にはありえなさそうなものに変更してみましたが改善されませんでした。

    モデレーター jim912

    (@jim912)

    では、header.php に

    global $wp_query;
    var_dump( $wp_query->request );

    を追記して、表示される場合と表示されない場合で、表示されるSQLの内容に差があるか確認してください。

    お忙しい中ご回答ありがとうございます。

    さっそく調べてみました。

    http://hogehoge.jp/?page_id=フォームIDの場合

    SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID = フォームID AND wp_posts.post_type = ‘page’ ORDER BY wp_posts.post_date DESC

    となっていますが、

    SELECT wp_posts.*
    FROM
    wp_posts INNER JOIN wp_postmeta ON
    ( wp_posts.ID = wp_postmeta.post_id )
    INNER JOIN wp_postmeta AS mt1 ON
    ( wp_posts.ID = mt1.post_id )
    INNER JOIN wp_postmeta AS mt2 ON
    ( wp_posts.ID = mt2.post_id )
    WHERE
    1=1 AND
    wp_posts.ID = フォームID(querystring1) AND
    ( ( wp_postmeta.meta_key = ‘querystring2’ AND
    CAST(wp_postmeta.meta_value AS CHAR) = ‘querystring2の値’ ) AND
    ( mt1.meta_key = ‘querystring3’ AND
    CAST(mt1.meta_value AS CHAR) = ‘querystring3の値’ ) AND
    ( mt2.meta_key = ‘querystring4’ AND
    CAST(mt2.meta_value AS CHAR) = ‘querystring4の値’ ) ) AND
    wp_posts.post_type = ‘page’ GROUP BY wp_posts.ID

    となっています。

    確かにこれだとページは引っ張ってこれないですね・・・

    解決方法としては、
    1.クエリが作成されているときに、query2-4の部分を読み込まないようにして回避する
    2.テーブルに値を追加して回避する

    があげられるかと思います。
    もし的外れであればご指摘ください。

    ORDER BY wp_posts.post_date DESC

    モデレーター jim912

    (@jim912)

    通常では、クエリーストリングの値に関わらず、postmeta テーブルを対象とすることはありません。

    となると、プラグイン、もしくは何らかのカスタマイズが影響しているものと思われます。
    なんらか心当たりでもありますでしょうか。

    ご返信ありがとうございます。

    先ばしってしまいました・・・すみません。

    現状、使用していると思われそうなのは

    MW WP form かマイカレンダーでしょうか・・・
    カスタイマイズはしていません。

    jim912様

    いろいろありがとうございます。
    結果から言いますと解決できました。

    たしかににMW WP form が影響しておりました。
    単純にこのMW WP form 内のURL引数の許可をOKにしたところ解決しました。

    このたびは単純なミスでお手を煩わせてしまい申し訳ありません。

    また親切なご回答ありがとうございました。

    これにてクローズさせていただきます。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「固定ページ間のデータ受渡し方法」には新たに返信することはできません。