在进行了大量的故障排除和搜索之后,我想我终于明白了如何进行循环。但我似乎无法让它真正循环!
我创建了一个子主题,并添加了functions.php
文件中包含以下代码:
<?php
function my_theme_enqueue_styles() {
$parent_style = \'grow-thinkup-style-minimal\'; // This is \'twentyfifteen-style\' for the Twenty Fifteen theme.
wp_enqueue_style( $parent_style, get_template_directory_uri() . \'/style.css\' );
wp_enqueue_style( \'child-style\',
get_stylesheet_directory_uri() . \'/style.css\',
array( $parent_style ),
wp_get_theme()->get(\'Version\')
);
}
function show_posts(){
if (is_page("test-1")){
if (have_posts()){
echo "You have posts!";
while (have_posts()){
the_post();
echo("This is " . the_title());
}
}
}
}
add_action( \'wp_enqueue_scripts\', \'my_theme_enqueue_styles\' );
add_action(\'wp\', \'show_posts\');
?>
我的想法是
page, 标题为
test-1
(
www.example.com/test-1
). 如果访问了该URL,我想列出所有
posts 我的Wordpress里有。
显示当前代码所做的一切the_title()
对于test-1
. 不是我的post 第页。它似乎也没有从the_post()
, i、 e。the_title()
.
以下是我访问时看到的内容www.example.com/test-1
:
它没有显示其他信息的原因是我有这个functions.php
? 我对WordPress很陌生,所以我还在学习他们的文件系统是如何工作的,所以这可能就是问题所在?
最后,我想page 拥有一切posts 使用循环列出。
仅供参考以下是我的文件的位置:
.../wp-content/themes/grow-minimal-child/
[这有style.css、index.php和functions.php,代码如上所示]
最合适的回答,由SO网友:Hans 整理而成
我在关注你最初的问题。在后端,创建一个标题为Test 1
, 这将导致页面slugtest-1
.
在子主题文件夹中,使用文件名创建页面模板page-test-1.php
. Wordpress将按照以下模式加载此模板:page-$slug.php
. 有关更多详细信息,请参阅此处:https://developer.wordpress.org/files/2014/10/wp-hierarchy.png.
在页面模板中,加载主题的页眉和页脚并查询帖子。默认情况下,Wordpress将显示该页面的内容,但由于您希望显示所有帖子,因此需要custom query:
<?php
get_header();
$args = [
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1
];
$posts = new WP_Query( $args );
while ( $posts->have_posts() ) : $posts->the_post();
?>
<article>
<?php
the_title( \'<h1>\', \'</h1>\' );
the_excerpt();
?>
</article>
<?php
endwhile;
get_footer();
另一种方法是
settings
->
reading
节并选择页面
Test 1
作为帖子页面的默认模板。但是在这种情况下,Wordpress将加载
index.php
文件以显示您的帖子列表。然后,您可以使用默认循环显示所有帖子:
while( have_posts() ) : the_post();
the_title();
endwhile;
SO网友:WebElaine
回路内部不工作functions.php
. 那是因为functions.php
控制主题范围内的操作。在大多数情况下,站点需要不止一个循环。例如,在单个帖子上有一个循环-该循环显示帖子的全部内容。在类别上会有一个不同的循环-通常会显示有限数量帖子的帖子摘录,下面会分页。然而,其他循环是很常见的,只取决于您想用什么帖子类型和内容类型实现什么。
所以,为自己创造一个index.php
一开始这是退路。大多数情况下,这个文件甚至没有被使用,因为您想自定义每种内容类型,但这是您最基本的循环应该存在的起点。抓取页眉、循环、抓取页脚。
然后,决定在主题中还需要哪些其他类型的循环。另一个常见的文件是single.php
控制各个岗位。这里可能有更多自定义标记。
如果您真的想合并并在多个模板上有一个输出相同的循环,可以查看模板部分。你从另一个文件中调用它们,比如single.php
, 它们只处理该文件输出的一部分,例如通用循环。所以你可以full-content.php
内部调用的完整内容模板部分single.php
像这样:
get_template_part(\'full-content\');
然后可以从其他模板中调用它,如
page.php
它控制页面。这样你就不会在文件之间重复你自己。