2011-02-16 39 views
0

希望大家一直在做偉大的...

我今天來是爲了尋找一個答案,我的問題......

我創建了一個插件並激活它,它不會創建一個表等,只是簡單的PHP腳本。

<?php 

/* 
Plugin Name: F 
Plugin URI: h 
Description: T 
Author: D 
Author URI: h 
*/ 

$server = "localhost"; 
$user = "admin"; 
$password = ""; 
$db = "wordpress"; 

$con = mysql_connect($server,$user,$password); 

if (!$con) { 
    die("database connection error"); 
} else 

{ 

    mysql_select_db($db, $con); 

    $results = mysql_query("SELECT ID, post_title FROM wp_posts " 

    . "WHERE " 

    . "post_status = 'publish' " 
    ); 

    while($row = mysql_fetch_array($results)) 
    { 
     echo $row['post_title']; 
    } 

} 

自動完成代碼如下

$("#imageSearch").autocomplete("<?php echo bloginfo('wpurl')."/wp-content/plugins/foxycomplete/"; ?>foxycomplete.php", { 
dataType: "json", 
    parse: function(data) { 
     return $.map(data, function(row) { 
      return { 
      data: row, 
      value: row.title, 
      result: $("#imageSearch").val() 
      } 
     }); 
    } 

}).result(function(e, item) { 
    location.href = link(item); 
    }); 
}); 

,這是工作,但我敢肯定,這是不正確的做法。我無法使用wp函數是插件腳本,而且這似乎是不安全的,並容易發生黑客行爲...

任何人都可以請幫助我如何獲得一個PHP文件餵養自動完成,可以訪問wop功能和是安全的?

非常感謝!

回答

0

如果您直接訪問插件頁面而不是從Wordpress內部訪問,則問題可能是$ wpdb未被初始化。這是在WordPress標題中完成的,如果您在Wordpress模板中,通常會將其包含在頁面中。嘗試包括WP-博客 - 的header.php在你的腳本是這樣的:

include_once(‘wp-blog-header.php’); 
+0

不工作 - 我已經更新了這個問題,以更好地理解......請你幫忙! – foxybagga 2011-02-16 14:16:28

2

有沒有這樣的東西插件頁面。上面的代碼應該包裝在一個函數中,並從WordPress上下文中的某個地方調用,或者應該用在動作或過濾器中。

+0

我不知道該怎麼做。我已經更新了這個問題,告訴你我現在正在做什麼。 – foxybagga 2011-02-16 14:10:40