So-net無料ブログ作成
検索選択

楽天APIサンプルコードをワードプレス投稿欄で試す

サンプルコードをワードプレスの投稿欄に貼り付けて動作させたい場合。

1ページ目は正常に表示されるのですが、2ページ目に移行しようとするとワードプレスのリライト機能が介入してページ遷移ができません。

ワードプレスのようにリンクで存在しないページURLを指定すると、強制的にエラーページやサイトホームへと遷移してしまう環境に限ってのはなしになりますが、この挙動が原因でページャーで思うように遷移できない現象が起きます。

ページャーを使ったページ遷移でワードプレスのリライト介入を避けるために下記コードをご使用テーマのfunctionsファイル内に追加します。
function rws_redirect( $rewrite_url ) {

	if ( is_single() ){
		 // ページャーURLに「?Keyword=」が含まれているかどうかで判定
		$pattern = '/\?keyword=/';
		preg_match($pattern, $rewrite_url, $matches);

		if ($matches){
		  //ページャーURLに「?Keyword=」が含まれていればリライトさせない
		  $rewrite_url = false;
		return $rewrite_url;
		}
	}

}
add_filter('redirect_canonical','rws_redirect');

リライト機能全般を止めてしまうのではなく、条件に当てはまる場合のみリライト機能を停止させています。

つづいてサンプルコード側のページャー部分を下記のように変更します。
// サンプルコードを貼り付けたページURLを取得
$currenturl = ((empty($_SERVER["HTTPS"]) ? "http://" : "https://") . $_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&page=";

この方法は他にアップしてる電脳卸、リンクシェア、アマゾンのサンプルコードにおいても同様の処理で有効な方法です。


共通テーマ:パソコン・インターネット