現在、Wordpressにて、独自関数を複数設置し、
その内容がURLに含まれるか含まれないかで分岐できるように行っています。
その上で、例えば関数1に「hoge-test」、関数2に「hoge-test1」、関数3に「hoge-test10」と設定し
設定している内容
独自関数を読み込ませる為に
<?php $url = $_SERVER['REQUEST_URI']; $before = $_SERVER['HTTP_REFERER']; $code001 = get_option('code001'); $code002 = get_option('code002'); $code003 = get_option('code003'); $code004 = get_option('code004'); $code005 = get_option('code005'); ?>
このように記述しておき
<?php if(strstr($url,$code001)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code001'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code002)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code002'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code003)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code003'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code004)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code004'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code005)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code005'); ?>">トップにもどる</a> <?php else: ?> <a href="<?php echo home_url(); ?>">トップにもどる</a></a> <?php endif; ?>
このようにして分岐させています。
URLに「hoge-test」が含まれる場合、トップにもどるのリンク先は「example.com?hoge-test」となり
「hoge-test1」が含まれる場合は、「example.com?hoge-test1」となるようにさせたいのですが、
hoge-test1でも、「example.com?hoge-test」が飛び先になってしまいます。
只、関数2と関数3をそれぞれ「hogetest1」「shiken10」のようにすると
「example.com?hogetest1」「example.com?shiken10」のように変わってくれますが、
関数2と関数3をそれぞれ「hogetest1」「hogetest2」にした状態で
3を入れた「example.com?hogetest2」のURLの場合、2に設定した「example.com?hogetest1」が
トップにもどるの飛び先になってしまいます。
部分一致?になってしまっているようなのですが、
<?php if(strstr($url,$code001)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code001'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code002)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code002'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code003)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code003'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code004)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code004'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code005)==true): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code005'); ?>">トップにもどる</a> <?php else: ?> <a href="<?php echo home_url(); ?>">トップにもどる</a></a> <?php endif; ?>
この状態であれば、完全一致になると認識していましたので、
なぜ、この症状が出るのか分からない状態です。
次に試した事
<?php if(strstr($url,$code001)): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code001'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code002)): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code002'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code003)): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code003'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code004)): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code004'); ?>">トップにもどる</a> <?php elseif(strstr($url,$code005)): ?> <a href="<?php echo home_url(); ?>?<?php echo get_option('code005'); ?>">トップにもどる</a> <?php else: ?> <a href="<?php echo home_url(); ?>">トップにもどる</a></a> <?php endif; ?>
分岐の処理内容は変わらないであろうと、上記のようにもしてみましたが、
やはり症状は変わりませんでした。
完全一致させる方法を探しましたが、どれも上記と同じような記述ばかりでしたので、
ぜひ、お知恵お借りできれば幸いです。
宜しくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/09 16:29
2021/03/10 00:07 編集
2021/03/10 01:55
2021/03/10 14:29