[英]How to keep url parameter Wordpress
我在自己的网站上创建了自己的搜索,并且创建了包含<php>
代码的页面搜索结果页面,在搜索结果页面上使用了插件PHP-Exec。 我创建了分页,但似乎无法正常工作。 当我为自己搜索的下一个结果单击“下一步”时,url参数将重定向到错误的url。
网址应为:
http://inindonesia.org/hasil-pencarian?phrase=sofa+bed&page=1
但是,它重定向到:
http://inindonesia.org/hasil-pencarian/1?phrase=sofa bed
确实是错误的URL,我感到困惑,因为它会自动影响我自己的搜索结果:(。有关信息,我使用Wordpress Multisite,有什么想法可以保留我的URL参数?
这是我的代码:
<?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);
?>
不要使用关键的“页面”进行分页。 而是使用其他键来标识您的页码,因为它是您自定义的搜索代码。
当您在查询字符串中传递页面时,wordpress将检测为页面参数并重定向到用于页面调度的默认URL结构( http://inindonesia.org/hasil-pencarian/1
)
当您更改分页键时,wordpress将无法识别页面调度,也不会更改您的URL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.