【问题标题】:wordpress looping through posts in custom php pagewordpress 循环遍历自定义 php 页面中的帖子
【发布时间】:2016-02-16 21:31:25
【问题描述】:

我试图循环浏览自定义 php 页面中的帖子,但无论我做什么,都找不到帖子 这是我在 my-custom-page.php 中编写的代码

<?php 
require_once("/wp-load.php");
get_header();?>
<div id="blog">
<?php if(have_posts()) : ?>
 <?php echo"anything"; ?>
<?php endif; ?>
</div>
<?php get_footer();?>

【问题讨论】:

  • 我没有在任何其他页面中引用此页面

标签: php wordpress posts custom-pages


【解决方案1】:

您应该通过该文件的完整路径要求 wp-load.php。

硬编码示例:

require_once("user/home/public-html/wordpress/wp-load.php");

软编码示例(假设您的文件与 WordPress 位于同一目录中):

require_once(dirname(__FILE__)."/wp-load.php");

您还必须在显示帖子之前查询帖子。因此,您需要将此行添加到您的代码中:

query_posts('post_type=post');

查询参数可能因您要显示的内容而异。其中一些是 WP_Post 类的成员变量。参考https://codex.wordpress.org/Class_Reference/WP_Post

这里您重写了代码,显示了最新发布的 30 篇文章的标题:

<?php
require_once(dirname(__FILE__)."/wp-load.php");
query_posts('post_type=post&showposts=30');
get_header();?>
<div id="blog">
<?php
if (have_posts()) :
   while (have_posts()) :
      the_post();
         the_title();
         echo '<br />';
   endwhile;
else :
    echo 'Sorry, no posts found.';
endif;?>
</div>
<?php get_footer();

【讨论】:

  • 感谢您的完整和清晰的解释,但结果是:抱歉没有找到帖子
  • @Exact Precisions - 我知道这个问题的作者不是在搜索自定义页面模板,而是从 WordPress 外部调用自定义 php 页面。
  • 当您收到“抱歉,未找到帖子”响应时,这意味着您的查询运行良好,但没有检索到任何帖子。因此,请检查数据库中是否有任何类型为“帖子”的帖子。尝试更改为post-type='page' 以查看是否找到阳性结果。并确保所需的“wp-load.php”文件路径指向这些帖子所连接的 WordPress 安装。
  • 我的意思是post_type='page'(带下划线,而不是连字符)。对不起。
  • 我肯定有帖子存储在数据库中,当我在 edit.php 中运行此代码时,它运行良好,但是当我在自定义 php 页面中运行它时,我总是得到“抱歉没有找到帖子”
【解决方案2】:

wp_count_posts:
@return object 每个状态的帖子数。

您正在尝试回显以致命错误结尾的对象。此外,如果您想查看所有帖子 the_post 是不正确的。在函数参考中查找它:https://codex.wordpress.org/Function_Reference/the_post。我会做其他的(谷歌诸如“获取所有帖子”之类的)。

【讨论】:

  • 谢谢你的回答,我编辑了代码,这段代码也没有输入任何内容
【解决方案3】:

如果您将在主题中使用代码 使用与 Mr.Carlos 相同的代码,但没有目录

require_once("/wp-load.php");

【讨论】:

    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2014-05-30
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多