如何保持url参数Wordpress

时间:2014-08-09 05:58:36

标签: php wordpress parameters pagination search-engine

我在我的网站上创建自己的搜索,并且我创建了包含<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);
?>

1 个答案:

答案 0 :(得分:2)

不要使用密钥&#34; page&#34;分页。而是使用其他键来识别您的页码,因为它是您自定义的搜索编码。

当您在查询字符串中传递页面时,wordpress将检测为页面参数并重定向到默认URL结构以进行分页(http://inindonesia.org/hasil-pencarian/1

更改分页键时,wordpress将无法识别分页,也无法更改您的网址。