サポート » 使い方全般 » パラメーターをつけたいのですが方法がわかりません

  • 解決済 tokuta

    (@tokuta)


    質問させていただきます。
    a href=”<?php the_permalink(); ?>?mobile=1のように
    パーマリンクにkey=1のようなパラメーターをつけて、パラメーターの有無でデザインを変えるサイトを作成中ですが、
    <?php wp_get_archives(); ?>
    <?php the_category(‘, ‘); ?>
    <?php previous_post_link(); ?>
    にkey=1をつける場合、どうしたらよいかわかりません。
    これがうまくつけられると、これらのリンクで呼び出されたページのデザインを変えられるのですが・・・
    ちなみにhome.phpからsingle.phpまではうまく行っています。
    初歩的な質問で恐縮ですが、よろしくお願いします。

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

    (@jim912)

    tokutaさん

    パラメーターの付加は、get_query_argを使うと簡単にできます。

    function add_mobile_arg( $url ) {
    	return add_query_arg( array( 'mobile' => 1 ), $url );
    }
    add_filter( 'get_month_link', 'add_mobile_arg' );
    add_filter( 'get_year_link', 'add_mobile_arg' );
    add_filter( 'get_day_link', 'add_mobile_arg' );
    add_filter( 'category_link', 'add_mobile_arg' );
    add_filter( 'post_link', 'add_mobile_arg' );

    既存のコードとの競合(パラメーターが重複する)やパラメーターを付加したくないときにも付加されてしまいますが、そのあたりは既存コードの調整や条件分岐をしてください。

    トピック投稿者 tokuta

    (@tokuta)

    jim912世話役様
    さっそくアドバイスいただき、ありがとうございます。
    function add_mobile_arg( $url ) {
    return add_query_arg( array( ‘mobile’ => 1 ), $url );
    }
    など、add_query_arg で試させていただいた結果、静的なURLではうまく行くのですが、<?php wp_get_archives(); ?>
    のような動的なURLではパラメーターを含めることができず、
    <?php previous_post_link(); ?>
    のような静的なものでも、あらかじめ関数のなかにリンクが含められているものでは、パラメーターの付加はできても、パラメーターをリンクのなかに含められないことがわかりました。

    これから時間をかけて調べようと思いますが、素人に近いレベルなので、正直なところ、途方にくれています。

    せっかく有意義なアドバイスをいただいても、うまく活用することができず、すみませんでした。

    トピック投稿者 tokuta

    (@tokuta)

    結局この問題は、今日ネット上で、どなたかが general-template を開いて function wp_get_archives を書き換えたという記事を読む機会があり、同様に、function wp_get_archivesを探し、その中の、
    $url = get_month_link( $arcresult->year, $arcresult->month );
    というコードの下に
    $url = $url.’?mobile=1′;
    という記述を加えたところ、
    wp_get_archives が動的に表出する月毎のアドレスの下に、
    2012/05/?mobile=1
    というように、意図したパラメーターがつくようになりました。
    最初の意図はこのようなものでしたので、期待通りの結果を得ることができました。

    wp_get_archives()、 previous_post_link()は、general-template の中にはないようですが、今後、探し出して、同様の処理を加えたいと思います。

    これもjim912世話役様をはじめとして、フォーラムの皆様に沢山のヒントを与えていただいたおかげかと思います。

    ありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「パラメーターをつけたいのですが方法がわかりません」には新たに返信することはできません。