下面是我试图理解的分页函数中的以下代码,我不理解的部分是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
复制相似问题