Подписаться:Статьи Комментарии

Вы тут: Главная » BебДизайн » 10 хаков админки в WordPress

Админпанель является одной из главной частей WordPress. В частности она позволяет добавлять и редактировать содержимое блога, контролировать дизайн и комментарии посетителей, а так же многое другое… Необходимость в редактировании, кастомизации админки блога возникает, как правило когда сайт строится для заказчика.
Как правильно сменить лого на странице входа (логин)? Как сменить лого в самой админ-панели, как редактировать виджеты?

В этой статье мы рассмотрим 10 крайне полезных хаков админпанели WordPress, которые ответят на эти вопросы и не только.

Следует заметить, что примеры ниже являются правильным решением как например путем дополнительных функций в functions.php а не редактированием самого кода движка.

1. Убрать меню админ панели

Когда сайт строится под заказ, зачастую требуется спрятать часть меню, от неосторожных рук пользователя, дабы оный не смог случайно, скажем, удалить устрановленную тему с заказанным дизайном.

Скопируйте этот код в Ваш functions.php – данная функция уберет из админпанели все разделы, указанные в массиве $restricted:

function my_custom_login_logo() {
echo 'h1 a { background-image:url('.get_bloginfo('template_directory').'/images/custom-login-logo.gif) !important; }';
}

add_action('login_head', 'my_custom_login_logo');

2. Замена логотипа на странице авторизации

Несмотря на то что это никак «не влияет на скорость» (оптимизацию и т.д.), многим из счастливых владельцев WordPress было бы намного приятней лицезреть на странице логина свой логотип, как альтернатива оригинальному.

Вы можете использовать плагин для этих целей, либо вписать код в functions.php:

function my_custom_login_logo() {
echo 'h1 a { background-image:url('.get_bloginfo('template_directory').'/images/custom-login-logo.gif) !important; }';
}

add_action('login_head', 'my_custom_login_logo');

ссылка на новый логотип в папке установленной темы (см. код):
/images/custom-login-logo.gif

3. Замена логотипа в админпанели

add_action('admin_head', 'my_custom_logo');

function my_custom_logo() {
   echo '<style type="text/css">
         #header-logo { background-image: url('.get_bloginfo('template_directory').'/images/custom-logo.gif) !important; }</style>';
}

4. Отмена сообщения об обновлении

if ( !current_user_can( 'edit_users' ) ) {
  add_action( 'init', create_function( '$a', "remove_action( 'init', 'wp_version_check' );" ), 2 );
  add_filter( 'pre_option_update_core', create_function( '$a', "return null;" ) );
}

5. Отмена виджетов в консоли (админпанель)

function example_remove_dashboard_widgets() {
	// Globalize the metaboxes array, this holds all the widgets for wp-admin
 	global $wp_meta_boxes;

	// Remove the incomming links widget
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);	

	// Remove right now
	unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
	unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
}

// Hoook into the 'wp_dashboard_setup' action to register our function
add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets' );

6. Добавление собственных виджетов в консоли (админпанель)

function example_dashboard_widget_function() {
	// Display whatever it is you want to show
	echo "Hello World, I'm a great Dashboard Widget";
} 

// Create the function use in the action hook
function example_add_dashboard_widgets() {
	wp_add_dashboard_widget('example_dashboard_widget', 'Example Dashboard Widget', 'example_dashboard_widget_function');
}
// Hoook into the 'wp_dashboard_setup' action to register our other functions
add_action('wp_dashboard_setup', 'example_add_dashboard_widgets' );

7. Редактирование цветовых схем консоли

Можно добавлять бесконечное количество стилей между ‘style’:

function custom_colors() {
   echo '<style type="text/css">#wphead{background:#069}</style>';
}

add_action('admin_head', 'custom_colors');

8. Создание собственных «хелпов»

function my_admin_help($text, $screen) {
	// Check we're only on my Settings page
	if (strcmp($screen, MY_PAGEHOOK) == 0 ) {

		$text = 'Here is some very useful information to help you use this plugin...';
		return $text;
	}
	// Let the default WP Dashboard help stuff through on other Admin pages
	return $text;
}

add_action( 'contextual_help', 'my_admin_help' );

9. Мониторинг сервера в консоли WordPress

function slt_PHPErrorsWidget() {
	$logfile = '/home/path/logs/php-errors.log'; // Enter the server path to your logs file here
	$displayErrorsLimit = 100; // The maximum number of errors to display in the widget
	$errorLengthLimit = 300; // The maximum number of characters to display for each error
	$fileCleared = false;
	$userCanClearLog = current_user_can( 'manage_options' );
	// Clear file?
	if ( $userCanClearLog &amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp; isset( $_GET["slt-php-errors"] ) &amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp; $_GET["slt-php-errors"]=="clear" ) {
		$handle = fopen( $logfile, "w" );
		fclose( $handle );
		$fileCleared = true;
	}
	// Read file
	if ( file_exists( $logfile ) ) {
		$errors = file( $logfile );
		$errors = array_reverse( $errors );
		if ( $fileCleared ) echo '<p><em>File cleared.</em></p>';
		if ( $errors ) {
			echo '<p>'.count( $errors ).' error';
			if ( $errors != 1 ) echo 's';
			echo '.';
			if ( $userCanClearLog ) echo ' [ <b><a href="'.get_bloginfo("url").'/wp-admin/?slt-php-errors=clear" onclick="return confirm('Are you sure?');">CLEAR LOG FILE</a></b> ]';
			echo '</p>';
			echo '<div id="slt-php-errors" style="height:250px;overflow:scroll;padding:2px;background-color:#faf9f7;border:1px solid #ccc;">';
			echo '<ol style="padding:0;margin:0;">';
			$i = 0;
			foreach ( $errors as $error ) {
				echo '<li style="padding:2px 4px 6px;border-bottom:1px solid #ececec;">';
				$errorOutput = preg_replace( '/[([^]]+)]/', '<b>[$1]</b>', $error, 1 );
				if ( strlen( $errorOutput ) > $errorLengthLimit ) {
					echo substr( $errorOutput, 0, $errorLengthLimit ).' [...]';
				} else {
					echo $errorOutput;
				}
				echo '</li>';
				$i++;
				if ( $i > $displayErrorsLimit ) {
					echo '<li style="padding:2px;border-bottom:2px solid #ccc;"><em>More than '.$displayErrorsLimit.' errors in log...</em></li>';
					break;
				}
			}
			echo '</ol></div>';
		} else {
			echo '<p>No errors currently logged.</p>';
		}
	} else {
		echo '<p><em>There was a problem reading the error log file.</em></p>';
	}
}

// Add widgets
function slt_dashboardWidgets() {
	wp_add_dashboard_widget( 'slt-php-errors', 'PHP errors', 'slt_PHPErrorsWidget' );
}
add_action( 'wp_dashboard_setup', 'slt_dashboardWidgets' );

10. Удаление виджетов в консолии в соответствии с уровнем пользователя

function customize_meta_boxes() {
     //retrieve current user info
     global $current_user;
     get_currentuserinfo();

     //if current user level is less than 3, remove the postcustom meta box
     if ($current_user->user_level < 3)
          remove_meta_box('postcustom','post','normal');
}

add_action('admin_init','customize_meta_boxes');
© 2010 Дундук :: Dunduk.com · Подписаться:СтатьиКомментарии · Designed by Studio-XL · Powered by Studio-XL