下面是我试图理解的分页函数中的以下代码,我不理解的部分是if(!pages){ $pages =1)}
,它们是指什么。如果不是$pages变量。我想说的是,如果不是什么,那么正在比较的页面变量是什么。我很困惑
if($pages == '')
{
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages)
{
$pages = 1;
}
}
这是完整的函数,我试着一段一段地理解它,这样我就可以重写,而不需要在分页中只有右和左的数字。
function kriesi_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)."'>«</a>";
if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹</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)."'>›</a>";
if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>»</a>";
echo "</div>\n";
}
}
发布于 2013-02-10 07:12:38
这有几个部分:
True
和False
是可以保存在变量中的值。这种类型的值称为布尔值。您可以先说$c = ($a == $b);
,然后再说if ($c) { ... }
,而不是if ($a == $b) { ... }
。if
测试它,或者用and
或or
组合它),它就不会是一个错误,并且该变量将使用特定的规则进行转换。基本上,除了0、NULL、空数组、空字符串和其他一些可以转换为false (它们是“false”)的东西之外,大多数东西都会转换为真(它们是“真实的”)。因此,示例中的if (!$pages) { $pages = 1; }
表示,如果页面数量为零,请确保至少有一个页面。这是if ($pages == 0)
的一种更短的说法。
发布于 2013-02-10 06:57:43
if不是页面有趣的if语句里面的代码哈。
您的代码将$wp_query
对象“全球化”,以便在函数的作用域中可以访问它。然后将$pages
设置为$wp_query->max_num_pages
。然后检查该值以确定是否执行if
。这是如何工作的有点棘手,但这是你的。
PHP considers several things to be FALSE
0.0 (零)
<
如果这些都不匹配,则$pages
将为true,这通常会触发if
执行,但!
与之相反。因此,如果$pages
设置为某个真值,则if
条件为false
,并且if
不会运行--不运行$pages
。如果将$pages
设置为某个pages值,则if
条件为true
,它将执行,并将页面设置为1。
发布于 2013-02-10 06:53:05
该条件检查$pages
是否为0
。布尔值true
和false
通常分别由二进制文件1
和0
定义。因此,if(!$pages)
意味着“如果$pages
的值为false
(或0
),则执行条件主体并将$pages
设置为1
”。相反,if($pages)
指的是execute the condition body if $pages > 0
。
https://stackoverflow.com/questions/14792404
复制相似问题