如何访问axonomy-xxx.php模板文件中的$Query变量?

时间:2013-11-06 作者:whiteletters in blankpapers

在自定义模板文件中,我按以下方式创建查询:

<?php $query = new WP_Query(array(\'post_type\' => \'aya-bi-aya\',\'author\' => $current_user->ID,\'paged\' => $paged, \'post_status\' => array(\'publish\') ) ); ?>
为了执行分页,我在循环之后调用分页函数,如下所示:

<?php my_pagination($query->max_num_pages);?>
但在我的taxonomy-xxx.php, 当我以同样的方式调用分页时,会收到警告:

Notice: Undefined variable: query in C:\\xampp\\htdocs\\balagha-to-alquran\\production\\wp-content\\themes\\twentyten\\taxonomy-dawahir-balaghia.php on line 186

Notice: Trying to get property of non-object in C:\\xampp\\htdocs\\balagha-to-alquran\\production\\wp-content\\themes\\twentyten\\taxonomy-dawahir-balaghia.php on line 186
你能帮我解决这个问题吗?非常感谢您的帮助。

Edit and solution:

我的分页功能:

function my_pagination($pages = \'\', $range = 2)
{  
     $showitems = ($range * 2)+1;  

     global $paged;
     if(empty($paged)) $paged = 1;

     if($pages == \'\')
     {
         global $wp_query;
         $pages = $wp_query->max_num_pages;
         if(!$pages)
         {
             $pages = 1;
         }
     }   

     if(1 != $pages)
     {
         echo "<div class=\'pagination\'>";

         if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href=\'".get_pagenum_link(1)."\'>&laquo;</a>";
         if($paged > 1 && $showitems < $pages) echo "<a href=\'".get_pagenum_link($paged - 1)."\'>&lsaquo;</a>";

         for ($i=1; $i <= $pages; $i++)
         {
             if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
             {
                 echo ($paged == $i)? "<span class=\'current\'>".$i."</span>":"<a href=\'".get_pagenum_link($i)."\' class=\'inactive\' >".$i."</a>";
             }
         }

         if ($paged < $pages && $showitems < $pages) echo "<a href=\'".get_pagenum_link($paged + 1)."\'>&rsaquo;</a>";  
         if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<a href=\'".get_pagenum_link($pages)."\'>&raquo;</a>";
         echo "</div>\\n";
     }
}
我通过从函数调用中删除参数解决了这个问题($query->max-num-pages) 在我的taxonomy-xx.php 因为参数不是强制性的。如您所见,函数中有一个if语句,通过调用全局$wp_query. 非常感谢。

1 个回复
SO网友:Eric Holmes

my_pagination() 在与您的$query 公告

如果没有,您需要global $query; 在模板文件的顶部my_pagination() 正在调用。

如果这不能解决问题,请提供更多信息/代码示例。

结束

相关推荐

Custom templates folder

我创建了一个自定义文件夹(“/模板”),并将所有模板文件放在该文件夹中。而不是root(“/wp-content/themes/my-theme/”)。它工作得很好。我是否必须添加一些功能来指示“/模板/”文件夹作为我的模板文件夹?通常你把它们放在根上,对吗?现在一切正常,但我只是想知道是否有什么我必须做的。我找不到有关wordpress codex的任何信息。我刚刚安装了WPML,现在所有的模板页面都是404。我想知道它(自定义模板文件夹位置)是否会导致404页。因为吴宇森的商业页面显示良好。wc不在我