だから、私は自分が開発しているプラグインにちょっとした問題を抱えています。誰もが状況を明らかにできないのではないかと思います。 : - /
基本的に、私のプラグインは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!
カスタム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/>";
}
}