所以,我正在开发的插件有点问题,我想知道是否有人能解释一下这种情况,因为很多搜索都没有得到任何帮助-/
基本上,我的插件在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!
最合适的回答,由SO网友:prettyfly 整理而成
使用自定义数据库中的信息将小部件添加到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/>";
}
}