【问题标题】:Wordpress oop wpdb in class课堂上的Wordpress oop wpdb
【发布时间】:2015-06-28 06:05:54
【问题描述】:

我是 OOP PHP 的新手,我正在尝试在我的一些自定义类中使用 $wpdb (WORDPRESS) 对象,但不知道该怎么做。每次我尝试使用 $wpdb 执行基本操作都会导致失败。 我需要一些基本的东西,比如 get_results(),.... 那么如何做这样的事情:

global $wpdb;

$my_custom_table = $wpdb->prefix . "table_name";

$table_content = $wpdb->get_results("SELECT * FROM ".$my_custom_table);

并像这样把它放到我的课堂上:

Class MyClass{

     public function table_results(){
            //put in here
            return $this->table_content;
     }
}

我需要将该类放在单独的文件中,以便我可以轻松调用它。

【问题讨论】:

  • 您仍然需要将第一个代码放入第二个代码中的函数中。
  • 它不工作。我忘了提到这些是我的插件的文件。
  • 学习写一个简单的wordpress插件呢? codex.wordpress.org/Writing_a_Plugin
  • 前 3 行代码在单独的文件中工作得非常好,但我在课堂上需要它——当我把它放进去时——没有任何效果。我不知道如何解决这个问题。

标签: php class oop wordpress


【解决方案1】:

试试这个...

<?php
class MyClass {

private $wpdb;

public function __construct()
{
    global $wpdb;
    $this->wpdb = $wpdb;
}

public function table_results(){
    $my_custom_table = $this->wpdb->prefix . "table_name";

    $table_content = $this->wpdb->get_results("SELECT * FROM $my_custom_table");
    return $table_content;
}
}

【讨论】:

  • 谢谢。我想出了与此非常相似的东西。我一直在想念 __construct。:( 哦,我的 OOP 太糟糕了 :(
  • 当我在我的插件类中使用它时,我得到一个“未捕获的错误:不在对象上下文中使用 $this”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多