13 января 2012

WordPress класс WP_Screen

wordpress 3.3
Для WordPress разработчиков есть 2 глобальные переменные, которые помогут определить какая страница доступна в момент выполнения скрипта:

  • $pagenow — ID текущей страницы
  • $typenow — текущий пользовательский тип поста

Начиная с версии WordPress 3 появился класс WP_Screen, который даёт значительно больше информации о текущей странице.
Разберём на примере доступа к странице

/wp-admin/edit.php?post_type=event

Для получения объекта класса используем:

$screen = get_current_screen();

Теперь можно получить доступ к свойствам:

  • $screen->id: уникальный ID страницы (экрана), в нашем примере это будет ‘edit-event’, какие ID ещё могут быть смотрите здесь
  • $screen->base: тип (базовый тип), в нашем примере это будет ‘edit’
  • $screen->action: будет иметь значение ‘add’ для страниц *-add.php и *-new.php, во всех остальных будет пустым
  • $screen->is_network:
  • $screen->is_user:
  • $screen->parent_file:
  • $screen->parent_base:
  • $screen->post_type: пользовательский тип поста, в нашем примере ‘event’
  • $screen->taxonomy: таксономия, связанная со страницей

Использовать объект можем таким образом

add_action( 'admin_enqueue_scripts', 'on_enqueue_scripts' );

/**
 * Enqueue scripts and styles for editing page of 'event' post type only
 *
 * @ return void
 */
function on_enqueue_scripts()
{
	$screen = get_current_screen();
	if ( 'edit' === $screen->base && 'event' === $screen->post_type )
	{
		wp_enqueue_script( 'event-options', plugins_url('/js/event-options.js',__FILE__),array('jquery'), '1.0', true); 
		// Enqueue other scripts and styles
	}
}

Пример создания страницы с контекстной помощью используя объект класса WP_Screen смотрите в кодексе

Статьи по теме
Статья оказалась полезной? Подпишись на RSS рассылку или следуй за мной на твиттере @wpstarter или по этой ссылке wpstarter

Оставьте комментарий

Обведите фигуру по линии:

Ставим WordPress на локальном копьютере