未分類 > Amazonアソシエイト AWS動作デモページ
前回のAWSのサンプルコードの動作デモページです。
動作状況がかなり不安定です。
AWS(Amazon WEB Service)検索フォーム(デモ)
ワードプレスのリライト介入を回避する方法。
ワードプレスのようにリンクで存在しないページURLを指定すると強制的にエラーページやサイトホームへと遷移してしまう環境に限ってのはなしになりますが、この挙動が原因でページャーで思うように遷移できない現象が生じます。
これを解決するには下記のコードをご使用のワードプレステーマのfunctionsファイル内に記述します。
function aws_redirect( $rewrite_url ) { if ( is_single() ){ // ページャーURLに「?Keywords=」が含まれているかどうかで判定 $pattern = '/\?Keywords=/'; preg_match($pattern, $rewrite_url, $matches); if ($matches){ //ページャーURLに「?Keywords=」が含まれていればリライトさせない $rewrite_url = false; return $rewrite_url; } } } add_filter('redirect_canonical','aws_redirect');
特定の条件に限ってリライトさせないようにします。
これでページ移動が正常に行えるようになるのですが、もうひとつ解決しなければならない問題があります。
ページャーで生成するリンクURLはスクリプトを貼り付けたページを元に作成する必要があるので、「カレントURL + &page=2」のようにすればよいように思えますが、3ページ以降になると「カレントURL + &page=2&page=3」のような変なURLになってしまいます。
ですのでサンプルコード内のページャー部分を下記のように変更します。
// サンプルコードを貼り付けたページURLを取得 $currenturl = ((empty($_SERVER["HTTPS"]) ? "https://" : "httpss://") . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); // URLの中に「&」が含まれていればカレントURLの中から「&」以降を削除 if(strstr($currenturl, "&")){ $die = strstr($currenturl, "&"); $currenturl = str_replace($die, "", $currenturl); } // ページャーリンク生成部分 $url_a ="<a style='background-color: #ffffff; color: #ff0000; margin: 0; padding: 0.2em 0.5em; border: solid 1px; text-decoration: none;' href=\"$currenturl&ItemPage=";