web-dev-qa-db-ja.com

WP_Paginateプラグインを使用したページ区切りの問題

ですから、私はこの問題に関するもっと多くの投稿や記事を読んでいますが、それでも私は作品を見つけることができません。これが問題です。他の記事で見たのと同じように、ページ付けを進めることができず、すべて同じ投稿が何度も表示されます。

これが私が使っているものです(異なるカテゴリーのための2つの別々のテンプレート):

<?php
$paged = get_query_var( 'page' );
query_posts('cat=4&paged='.$paged);
if(have_posts()) { while(have_posts()) { the_post(); 
?>

それはうまくいきますが、それから私はそのサイトの唯一の他のページに行きます - それはループの中で同じコードを使います、異なるカテゴリー(3)そしてそれはそこではうまくいきません、それはタイプミスではありません、等。

私はまた、次のように疲れました:

if(have_posts()){
  $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 query_posts($query_string . "&cat=4");
  while(have_posts()){
  the_post();
  global $more;
  $more = 0;

OR

query_posts('cat=3&paged='.get_current_page());
  if(have_posts()){
  while(have_posts()){
  the_post();
  global $more;
  $more = 0;

Get_current_page関数では、このハックを使用しました。WP VIPで指示されていたのは方法ではありませんでした(ただし、両方のページで機能しました)。

/* Get current page for paginaton navigation */ 
function current_page() {
 $pageURL = 'http';
 //check what if its secure or not
 if ($_SERVER["HTTPS"] == "on") {
 $pageURL .= "s";
 }
 //add the protocol
 $pageURL .= "://";
 //check what port we are on
 if ($_SERVER["SERVER_PORT"] != "80") {
 $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
 $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 //cut off everything on the URL except the last 3 characters
 $urlEnd = substr($pageURL, -3);
 //strip off the two forward shashes
 $page = str_replace("/", "", $urlEnd);
 //return just the number
 return $page;
 }
1
Chris

ここでのあなたの解決策は最も正しいです..

    if(have_posts()){ $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts($query_string . "&cat=4"); 
while(have_posts()){ 
the_post(); global $more; $more = 0;

...しかし、いくつかのエラーがあります。試してください:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$category = get_category_by_slug('your-category-slug');
query_posts(array('paged' => $paged, 'cat' => $category->term_id)); 
while(have_posts()){ 
    the_post(); 
    global $more; 
    $more = 0;
    //output here
}

カテゴリIDを直接使用しても_ ​​WP VIPでは機能しないことに注意してください。カテゴリIDは、あなたが地元で持っているものと一致しません。

1
prettyboymp