【问题标题】:How do you include WP-Query class in a WordPress child theme?如何在 WordPress 子主题中包含 WP-Query 类?
【发布时间】:2021-04-08 11:12:04
【问题描述】:

我想我在这里遗漏了一些明显的东西! 我正在基于 WordPress TwentyTwentyOne 主题创建我的第一个子主题。我想在我的主页上显示来自特定类别(例如“新闻”)的帖子。我创建了一个特定的页面模板“page-home.php”,它是父主题的“page-php”的副本,但添加了以下代码:

$args = array(
   'category_name' => 'news',
   'posts_per_page' => 3
);
$my_query = new WP_Query( $args );
if ( $my_query->have_posts() ) {
   while ( $my_query->have_posts() ) {
      $my_query->the_post();     
   }
}
wp_reset_postdata();

这不起作用。 Eclipse IDE 在“new WP_Query()”上显示错误:“WP_Query cannot be resolved to a type”,这是可以理解的,因为项目不包含 wp-include 目录。但是,我希望 WordPress 环境添加了这个,但似乎并非如此。

然后我添加了以下相当复杂的代码

$filename = $_SERVER["SCRIPT_FILENAME"];
$dir = substr($filename,0, strrpos($filename,"/"));
$incPath = $dir."/wp-includes";
$incPath = str_replace("/", DIRECTORY_SEPARATOR, $incPath);
set_include_path(get_include_path() . PATH_SEPARATOR . $incPath);
require_once 'class-wp-query.php';

这也无济于事。

我觉得我缺少一些明显的东西,它不应该那么复杂。

我在 Windows 10.0.19041 上使用 Apache 2.4 和 PHP 7.4 运行 Wordpress 5.7。

【问题讨论】:

  • 您是否遇到任何错误?你检查错误日志了吗?
  • 请阅读How to Ask。作为问题描述,“不起作用”对我们不起作用。

标签: php wordpress


【解决方案1】:

它对我来说很好用:

<?php
$args = array(
    'posts_per_page' => 3,
);
$the_query = new WP_Query($args);

if ($the_query->have_posts()) {
    echo '<ul>';
    while ($the_query->have_posts()) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
} else {
    // no posts found
}

wp_reset_postdata();

?>

【讨论】:

  • 谢谢亚历山大。是的,我需要在循环中添加一些输出。被 Eclipse 错误分心了,这有点像红鲱鱼。
【解决方案2】:

我已经添加了行

echo '<li>' . get_the_title() . '</li>';

按照 Aleksandr 的建议,页面现在输出所需的标题。

【讨论】:

    猜你喜欢
    • 2014-02-10
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 2016-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多