我已经创建了一个插件
在这个插件中,我有一个显示一些数据的函数
在此函数中,我使用is_admin()
确定是否从后端调用该函数,因为这样我可以添加一些附加信息。
在管理页面中,函数正常加载。使用jQuery进行更新后,调用该函数以显示新数据。
问题是,当通过jQuery调用函数时is_admin()
是false, 即使我是后台管理模式。
为什么不是is_admin
通过jQuery调用什么工作?
Update
的代码is_admin()
在单击新事件(或更新现有事件)的保存按钮时调用。
单击保存/更新后,通过jQuery更新日历列表。
下面是部分插件代码。
// create custom plugin settings menu
if ( function_exists(\'add_action\') ) {
add_shortcode(\'eventcal\', \'shortcode_display_event\');
}
function shortcode_display_event($attr) {
include_once(\'eventcal.class.php\');
$ec = new EventCalendar();
extract(shortcode_atts(array(
\'type\' => \'simple\',
\'parent_id\' => \'\',
\'category\' => \'\',
\'count\' => \'10\',
\'link\' => \'\'
), $attr));
$data[\'events\'] = $ec->getMultipleEvents($cal_type, $count, $parent_id, $category);
$data[\'link\'] = $link;
$data[\'type\'] = $type;
$ec->displayCalendarList($data);
}
这是在管理模式下添加的位:
function extendedList( $data ) {
(...)
if(is_admin())
$eventList .= \'<th class="eventActions"></th>\';
$eventList .= \'</tr></thead><tbody>\';
(...)
}
这是更新后更新日历列表的代码。
// New event - Form Submit
jQuery(\'#formNewEvent\').live(\'submit\' ,function() {
var formData = jQuery(\'#formNewEvent\').serializeArray();
//Event ID is only given a value when an event has been clicked.
if(jQuery(\'#event_id\').val() != \'\')
{
// UPDATE EVENT
jQuery.post("/wp-content/plugins/wp-eventcal/eventcal_jquery.php", { instance: \'updateEvent\', formData : formData, eventID : jQuery(\'#event_id\').val() },
function(data) {
if(data.status == \'success\') {
// Here we update calendar list after data has been updated
jQuery.post("/wp-content/plugins/wp-eventcal/eventcal_jquery.php", { instance: \'getEventList\' },
function(list) {
jQuery(\'#eventListContainer\').html(list);
});
}
}, "json");
}
else {
// ADD NEW EVENT
jQuery.post("/wp-content/plugins/wp-eventcal/eventcal_jquery.php", { instance: \'addNewEvent\', formData : formData },
function(data) {
// Here we update calendar list after new event have been added
if(data.status) {
jQuery.post("/wp-content/plugins/wp-eventcal/eventcal_jquery.php", { instance: \'getEventList\' },
function(list) {
jQuery(\'#eventListContainer\').html(list);
});
}
}, "json");
}
return false;
});