我被迫使用wordpress,如果你使用它,你可能知道我的意思:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
它的工作,毫无疑问。但我不明白这实际意味着什么。它不是三元运算符,也不是我所知道的任何其他运算符。我从来没有在任何我工作的php项目中看到过这样的声明。所以我有几个问题:
the_post()
做什么的?这些双点在做什么?我已经用Google搜索过了,但是没有关于我的问题的信息,似乎没有人对wordpress的工作方式感兴趣。我是,但我不明白。如果有人为我解释,那就太棒了。
答案 0 :(得分:3)
<?php define('WP_USE_THEMES', false); get_header(); ?>
The loop starts here:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
and ends here:
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>
This is using PHP's alternative syntax for control structures, and could also be expressed as:
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
//
// Post Content here
//
} // end while
} // end if
?>
答案 1 :(得分:3)
帖子()
此功能不接受任何参数。
返回值 此函数不返回任何值。
<?php
while ( have_posts() ) : the_post();
echo '<h2>';
the_title();
echo '</h2>';
the_content();
endwhile;
?>
<强> have_posts()强> 参数 此功能不接受任何参数。
返回值 (布尔值) 成功时是真的,失败时是假的。 例子 以下示例可用于确定是否存在任何帖子,如果存在,则循环访问它们。
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Your loop code
endwhile;
else :
echo wpautop( 'Sorry, no posts were found' );
endif;
?>
请注意 在循环内调用此函数将导致无限循环。例如,请参阅以下代码:
<?php
while ( have_posts() ): the_post();
// Display post
if ( have_posts() ): // If this is the last post, the loop will start over
// Do something if this isn't the last post
endif;
endwhile;
?>
如果您想检查当前循环中是否有更多帖子没有这种不幸的副作用,您可以使用此功能。
function more_posts() {
global $wp_query;
return $wp_query->current_post + 1 < $wp_query->post_count;
}
答案 2 :(得分:2)
<强> 1。什么是LOOP
Loop是WordPress用来显示帖子的PHP代码。使用The Loop,WordPress处理每个帖子以显示在当前页面上,并根据它与The Loop标签中指定条件的匹配方式对其进行格式化。
它将获取与特定页面相关的数据
:(冒号)用于告诉条件/循环从这里开始。 您可以将其替换为{}(括号引号)
<?php
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
//
// Post Content here
//
} // end while
} // end if
?>
<强> 2。这是Wordpress还是可以在其他地方使用吗?
是的,你当然可以使用它。 您可以通过在wordpress目录的根目录中包含一个名为“wp-blog-header.php”的核心文件来访问完整的wordpress功能。
<?php
/* Short and sweet */
define('WP_USE_THEMES', false);
require('./wp-blog-header.php');
?>
将此文件包含在外部文件的顶部,您也可以访问 wordpress数据库,wordpress函数,wordpress hooks 。
第3。当前帖子存储在哪里?
wordpress数据库中存在11个默认表。您可以在数据库中看到 wp_posts 表。所有帖子都存储在此表中。
假设,如果您要在帖子中创建元标记,则会存储在 wp_postmeta
中答案 3 :(得分:1)
它只是一种替代语法:
if ( have_posts() ) { //open if
while ( have_posts() ) { //start while loop
the_post(); //call a function
请参阅http://php.net/manual/en/control-structures.alternative-syntax.php
它不是特定于wordpress的,可以在任何PHP代码中使用。
答案 4 :(得分:0)
可能与谁有关。
什么是 WordPress Loop?
当我们在 WordPress 中保存数据(帖子、页面、几乎所有内容)时,数据会在我们的数据库 fx 中保存为一行。 MySQL。
WordPress 动态查询数据库并找到与您所在页面相对应的行,然后提取该数据然后将其显示在该部分中。
由于这是一个动态查询并以重复方式执行,因此称为 WordPress 循环
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
这些双点在做什么?条件/循环从这里开始 :(colon)
并且是一个三元运算符。
我认为其他人已经回答了其他问题。