以下是pagenation函数中的以下代码我试图理解我不理解的部分是if(!pages){ $pages =1)}
它们引用的是什么。如果什么不是$ pages变量。我想说的是什么是Pages变量,如果没有什么比较。我很困惑
if($pages == '')
{
global $wp_query;
$pages = $wp_query->max_num_pages;
if(!$pages)
{
$pages = 1;
}
}
这是完整的功能,我试图一点一点地理解它,这样我就可以重写没有pagenation中的数字只是左右。
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";
}
}
答案 0 :(得分:2)
如果什么不是页面有趣的if语句中的代码吧。
您的代码“全局化”$wp_query
对象,以便在函数范围内可以访问它。然后将$pages
设置为$wp_query->max_num_pages
。然后检查该值以确定是否执行if
。它是如何工作有点棘手,但你走了。
PHP considers several things to be FALSE
如果这些匹配$pages
都不成立,这通常会触发if
执行,但匹配与!
相反。因此,如果将$pages
设置为某个真值,则if
条件为false
且if
不会运行 - 仅保留$pages
。如果$pages
设置为某个false
值,if
条件为true
,则会执行,页面将设置为1.
答案 1 :(得分:2)
这有几个部分:
True
和False
是可以保存在变量中的值。这种类型的值称为布尔值。您可以if ($a == $b) { ... }
代替$c = ($a == $b);
而不是if ($c) { ... }
代替if
。如果不是所有编程语言,这种布尔概念是很常见的。and
进行测试,或将其与or
或if (!$pages) { $pages = 1; }
)它不会是错误,变量将使用某些规则进行转换。基本上大多数东西转换为true(它们是“真实的”),除了0,NULL,空数组,空字符串和一些其他东西,它们转换为假(它们是“假的”)。因此,您示例中的if ($pages == 0)
表示如果页数为零,请确保至少有一个。这是一种较短的说法{{1}}。
答案 2 :(得分:1)
条件检查$pages
是否为0
。布尔值true
和false
通常分别由二进制文件1
和0
定义。因此,if(!$pages)
表示“如果$pages
的值评估为false
(或0
),则执行条件正文并将$pages
设置为1
}”。相反,if($pages)
意味着execute the condition body if $pages > 0
。
答案 3 :(得分:0)
我不确定这是什么语言,但它应该清楚地定义什么算作“true”和“false”,其中布尔表达式是预期的。例如,在C中,任何非零整数值都是“true”;其他任何事情都是“虚假的”。某些语言还将定义哪些字符串值被视为“true”或“false”。这正是代码中if语句的作用。