web-dev-qa-db-ja.com

管理領域のカスタムDBテーブルからデータを取得して表示する

だから、私は自分が開発しているプラ​​グインにちょっとした問題を抱えています。誰もが状況を明らかにできないのではないかと思います。 : - /

基本的に、私のプラグインはwordpressデータベースにいくつかのカスタムエンティティを作成します。これらはすべてうまくいきます。私は情報を送信するためにフォームをページに追加するショートコード関数を追加しました。

私の問題は、上記のカスタムエンティティからデータを取得し、それらをWordpressの管理セクション(ダッシュボードウィジェットまたはカスタムプラグインページのいずれか)に表示したい場合、うまくいかないことです。フルストップ.

データを取得するための私のサンプル関数は以下の通りです。

function showApplicants(){
global $wpdb;

$appTable = $wpdb->prefix . "applications";
    $query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
    $applications = $wpdb->get_results($query);

    foreach ( $applications as $application ) 
{
echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
}

}

奇妙なことに、このコードがWordPress管理領域の外側のページ(例えば、WordPressが作成したページ、ショートコード関数(これは単にこのコードを出力する)を介して)、または私が作成して自分で追加するページテンプレート)で、それは動作します!正しい情報を検索し、それを予想どおりに表示します。

ダッシュボードウィジェットに追加してください。喜びはありません。管理セクション内のカスタムページに追加してください。

私は困惑しています。何かアドバイス?

P.S - 混乱を避けるために、$ wpdbグローバルはコード内でさらに上に宣言されているので、再度宣言する必要はありません(ただし、関数内で再度宣言しても機能しません)。

任意の助けは非常に高く評価されるでしょう!

Ta mucho!

1
prettyfly

カスタムDBからの情報でwpダッシュボードにウィジェットを追加するための作業コード:

/**
 * Add application widget to the dashboard.
 */
function addApplicationWidget() {
    wp_add_dashboard_widget(
                 'submitted_applications',         
                 'Submitted Applications',        
                 'showApplicants' 
        );  
}
add_action( 'wp_dashboard_setup', 'addApplicationWidget' );

function showApplicants() {
    global $wpdb;

    $appTable = $wpdb->prefix . "applications";
    $query = $wpdb->prepare("SELECT * FROM $appTable WHERE %d >= '0'", RID);
    $applications = $wpdb->get_results($query);

    foreach ( $applications as $application ) {
        echo $application->title . " " . $application->app_firstName . " " . $application->app_surName . "<br/>";
    }
}
7
prettyfly