为什么wp_Query导致IS_USER_LOGED_IN()未定义的未捕获错误?

时间:2018-01-19 作者:Uriah Jeshurun

我正在构建一个插件,并使用了简单的查询:

function getTotal($postType){
  $total = 0;

  $args = array(
   \'post_type\' => $postType,
  );
  $metrics = new WP_Query( $args );

  foreach( $metrics->get_posts() as $post ) {
      $total++;
  }

  wp_reset_postdata();

  return $total;
}
但当我将此代码添加到插件时,出现了以下错误:

致命错误:未捕获错误:在C:\\xampp\\htdocs\\sam\\wp includes\\class wp query中调用未定义函数is\\u user\\u logged\\u in()。php:2352堆栈跟踪:#0 C:\\xampp\\htdocs\\sam\\wp includes\\class wp query。php(3222):WP\\u Query->get\\u posts()#1 C:\\xampp\\htdocs\\sam\\WP includes\\class WP Query。php(3328):WP\\u Query->Query(Array)#2 C:\\xampp\\htdocs\\sam\\WP content\\plugins\\sample\\u plugin\\Models\\dataModels。php(62):WP\\u Query->\\uu construct(Array)#3 C:\\xampp\\htdocs\\sam\\WP content\\plugins\\sample\\u plugin\\Views\\consultable。php(3):GetConsultors()#4 C:\\xampp\\htdocs\\sam\\wp content\\plugins\\sample\\u plugin\\sample\\u plugin。php(20):需要(\'C:\\xampp\\htdocs…\')\\5 C:\\xampp\\htdocs\\sam\\wp设置。php(305):include\\u once(\'C:\\xampp\\htdocs…\')\\6 C:\\xampp\\htdocs\\sam\\wp config。php(91):require\\u once(\'C:\\xampp\\htdocs…\')\\7 C:\\xampp\\htdocs\\sam\\wp load。php(37):require\\u once(\'C:\\xampp\\htdocs…\')\\8 C:\\xampp\\htdocs\\sam\\wp blog header。php(13):require\\u once(\'C:\\xampp\\htdocs…\')\\9 C:\\xampp\\htdocs\\sam\\index。php(17):require(\'C:\\xampp\\htdocs.in C:\\xampp\\htdocs\\sam\\wp includes\\class-wp-query.php,第2352行

我已经找了一段时间了,但在这里找不到任何关于这个问题的直接解释。请提供指导?

1 个回复
SO网友:Uriah Jeshurun

其中一个函数调用是在全局范围内编写的,并在所有脚本都可以正确加载之前启动。将函数调用移出全局空间后,错误消失了。在WordPress成功加载其脚本之前,不应调用需要或使用WordPress函数的函数。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post