2015-08-12 5 views
0

Я хотел бы написать пользовательские запросы в WordPress в отдельный файл php.

мой класс:

<?php 
require('../../../wp-blog-header.php'); 

class DB_Functions { 

    private $db; 

    //put your code here 
    // constructor 
    function __construct() { 
     require_once 'DB_Connect.php'; 
     // connecting to database 
     //$this->db = new DB_Connect(); 
     // $this->db->connect(); 
    } 

    // destructor 
    function __destruct() { 

    } 


    //------------------------------------------------ 


    function test(){ 
     global $wpdb; 
     $q = "SELECT 
        wp_posts.ID as ID 
       FROM 
        wp_posts 
       WHERE 1 = 1 
        AND wp_posts.post_title LIKE '%s%' 
        AND wp_posts.post_type = 'post' 
        AND ((wp_posts.post_status = 'publish')) 
       ORDER BY wp_posts.post_date DESC 
       LIMIT 0, 5 "; 

     $arr = $wpdb->get_results($q); 

     foreach($arr as $a){ 
      echo $a['ID']; 
     } 
    } 

} 

?> 

Но test функция не возвращает (эхо) ничего. Где моя ошибка?

обновленный

возвращение var_dump из $arr:

> array(5) { [0]=> object(stdClass)#5354 (1) { ["ID"]=> string(4) "6533" 
> } [1]=> object(stdClass)#5353 (1) { ["ID"]=> string(4) "5838" } [2]=> 
> object(stdClass)#5352 (1) { ["ID"]=> string(4) "5786" } [3]=> 
> object(stdClass)#5351 (1) { ["ID"]=> string(4) "5282" } [4]=> 
> object(stdClass)#5350 (1) { ["ID"]=> string(4) "5230" } } 

решена:

foreach($arr as $a){ 
     echo $a->ID; 
    } 
+0

Любое сообщение об ошибке? Как насчет 'var_dump'' $ arr'? – vard

+0

@ vard обновлено, добавлены возвращаемые значения. –

ответ

0

Попробуйте с помощью следующего кода:

<?php 
require '../../../wp-load.php'; 

class DB_Functions { 

    private $db; 

    //put your code here 
    // constructor 

    function __construct() { 
     require_once 'DB_Connect.php'; 
    } 

    // destructor 
    function __destruct() { 

    } 

    function test(){ 
     global $wpdb; 
     $q = "SELECT 
        wp_posts.ID as ID 
       FROM 
        wp_posts 
       WHERE 1 = 1 
        AND wp_posts.post_title LIKE '%s%' 
        AND wp_posts.post_type = 'post' 
        AND ((wp_posts.post_status = 'publish')) 
       ORDER BY wp_posts.post_date DESC 
       LIMIT 0, 5 "; 

     $arr = $wpdb->get_results($q); 

     foreach($arr as $a){ 
      echo $a['ID']; 
     } 
    } 

}  
?> 
0

Что нужно для создания конфигурации wordpress и объекта базы данных: wp-load.php. поэтому включите этот файл в свой класс, а затем вы можете использовать $wpdb объект, подобный этому

require '../../../wp-load.php'; //change this path according to file 
class DB_Functions { 
    public function init() 
{ 
    global $wpdb; 
    $wpdb->query(''); 

} 
} 
Смежные вопросы