これはどう?確かに行ってテストしました:)
<?php
$new_get = $_GET; // clone the GET array
$new_get['pagenum'] = $i; // change the relevant parameter
$new_get_string = http_build_query($new_get); // create the foo=bar&bar=baz string
?>
<a class="page-numbers" href="?<?php echo $new_get_string; ?>">
<?php echo $i ?>
</a>
$href
また、ビット全体が不要であることに注意してください。で開始するhref
と?
、ブラウザーはクエリ文字列を現在のパスに適用します。
ただし、ループすることになると思いますので、10,000 ページ番号のリンクを生成するために最適化されたバージョンを次に示します。私のベンチマークでは、完全な HTTP クエリ ビルドではなく文字列連結を行っているだけなので、多数のリンクでわずかに高速であるとされていますが、心配するほどではないかもしれません。この違いは、5 つまたは 6 つの GET パラメーターがある場合にのみ顕著になりますが、ある場合、この戦略は私のマシンでは約半分の時間で完了します。
<?php
$pageless_get = $_GET; // clone the GET array
unset($pageless_get['pagenum']); // remove the pagenum parameter
$pageless_get_string = http_build_query($pageless_get); // create the foo=bar&bar=baz string
for($i = 0; $i < 10000; $i++):
// append the pagenum param to the query string
$page_param = "pagenum=$i";
if($pageless_get_string) {
$pageful_get_string = "$pageless_get_string&$page_param";
} else {
$pageful_get_string = $page_param;
}
?>
<a class="page-numbers" href="?<?php echo $pageful_get_string; ?>">
<?php echo $i ?>
</a>
<?php endfor ?>