我在我的网站上创建自己的搜索,并且我创建了包含<php>
代码的页面搜索结果页面,我在搜索结果页面上使用了插件PHP-Exec。我创建分页,但似乎不能正常工作。
当我点击“下一步”查看我自己搜索的下一个结果时,url参数会重定向到错误的网址。
网址应为:
http://inindonesia.org/hasil-pencarian?phrase=sofa+bed&page=1
但是,它重定向到:
http://inindonesia.org/hasil-pencarian/1?phrase=sofa bed
这确实是错误的网址,我觉得卡住了,因为它会自动影响我自己搜索的搜索结果:(。有关信息,我使用Wordpress Multisite,保留我的网址参数的任何想法?
这是我的代码:
<?php
$dbhost = 'myhost';
$dbuser = 'mydbuser';
$dbpass = 'mydbpass';
$hasil = $_GET[phrase];
$type = str_replace(' ','+',$hasil);
$rec_limit = 2;
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('Database tidak terkoneksi' . mysql_error());
}
mysql_select_db('mydb');
$sql = "SELECT count(wp_mp_term_relationships.post_id) FROM `wp_mp_term_relationships` INNER JOIN wp_mp_products ON wp_mp_products.id = wp_mp_term_relationships.post_id INNER JOIN wp_mp_terms ON wp_mp_terms.term_id = wp_mp_term_relationships.term_id WHERE wp_mp_terms.name = '$hasil'";
$retval = mysql_query( $sql, $conn );
if(! $retval ){
die('Tidak dapat Menerima Data: ' . mysql_error());
}
$row = mysql_fetch_array($retval, MYSQL_NUM );
$rec_count = $row[0];
if( isset($_GET{'page'} ) ){
$page = $_GET{'page'} + 1;
$offset = $rec_limit * $page ;
}else{
$page = 0;
$offset = 0;
}
$left_rec = $rec_count - ($page * $rec_limit);
$query = "SELECT * FROM `wp_mp_term_relationships` INNER JOIN wp_mp_products ON wp_mp_products.id = wp_mp_term_relationships.post_id INNER JOIN wp_mp_terms ON wp_mp_terms.term_id = wp_mp_term_relationships.term_id WHERE wp_mp_terms.name = '$hasil' LIMIT $offset, $rec_limit";
$query_retval = mysql_query( $query, $conn );
if(! $query_retval ){
die('Tidak dapat menerima data ' . mysql_error());
}
while($result = mysql_fetch_array($query_retval, MYSQL_ASSOC)) {
echo "<h3><a href=" . $result[post_permalink] . " target=_blank>" . $result[post_title] . "</a></h3>";
$content = $result[post_content];
$content_len = strlen($content);
if ( $content_len > 150 ){
echo "<div style='margin-left: 26px; margin-top: 6px; margin-bottom: -26px;'><h3 style='font-size: 13px; line-height: -0.5'>" . substr($content, 0, 150) . " ...<a href=" . $result[post_permalink] . " target=_blank> (more)</a></h3></div>";
}else{
echo "<div style='margin-left: 26px; margin-top: 6px; margin-bottom: -26px;'><h3 style='font-size: 13px; line-height: -0.5'>" . $content . "</h3></div>";
}
echo "<hr>";
}
if( $page > 0 ){
$last = $page - 1;
echo "<a href=\"$_PHP_SELF?phrase=$type&page=$last\">Last 5 Records</a> |";
echo "<a href=\"$_PHP_SELF?phrase=$type&page=$page\">Next 5 Records</a>";
}else if( $page == 0 ){
echo "<p>" . $_PHP_SELF . "?phrase=" . $type . "&page=" . $page . "</p>";
echo "<a href=\"$_PHP_SELF?phrase=$type&page=$page\">Next 5 Records</a>";
}else if( $left_rec < $rec_limit ){
$last = $page - 1;
echo "<a href=\"$_PHP_SELF?phrase=$&page=$last\">Last 5 Records</a>";
}
mysql_close($conn);
?>
答案 0 :(得分:2)
不要使用密钥&#34; page&#34;分页。而是使用其他键来识别您的页码,因为它是您自定义的搜索编码。
当您在查询字符串中传递页面时,wordpress将检测为页面参数并重定向到默认URL结构以进行分页(http://inindonesia.org/hasil-pencarian/1
)
更改分页键时,wordpress将无法识别分页,也无法更改您的网址。