Всё никак не мог навернуться написать статью о Консоли в wordpress. Собрал много полезных хаков, но использую только некоторые. Вот о них речь и пойдёт.
Удаление меню из Доски
Когда создаюшь блог под ключь для клиента, возможно было бы не плохой идеей убрать некоторые пункты меню из админки воизбежания дальнейших проблем. Таких как удаление заказанного шаблона или плагина.
Всё что нам потребуется, так это в файле functions.php нашего шаблона добавить ещё пару строк.
function remove_menus () {
global $menu;
$restricted = array(__('Dashboard'), __('Posts'), __('Media'), __('Links'), __('Pages'), __('Appearance'), __('Tools'), __('Users'), __('Settings'), __('Comments'), __('Plugins'));
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:”" , $restricted)){unset($menu[key($menu)]);}
}
}
add_action(’admin_menu’, ‘remove_menus’);
В значении $restricted указываем какие пункты меню удалить.
Смена лого без плагина
Данный хак я уэе описывал здесь
Отключение надписи : “Доступен WordPress *.*.*! Пожалуйста, обновитесь”.
Ну здесь всё понятно. Мне она покрайней мере только мешает. Защищать свой блог я пытаюсь сам, а каждый раз устанавливать новые версии которые кушаю всё больше и больше желания нет. Поэтому отключаем её добавив в functions.php
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;" ) );
}
Удаление виджетов с доски
Ну здесь также. Нагружает. Иногда бывает медленный интернет - хочется побыстрому заскочить в админку, написать пару слов и свалить, а эти виджеты грузят страницу, при том что я ними совершенно не пользуюсь. Поэтому - удаляем вставив в functions.php
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’ );
Мониторинг сервера из админки
Вот это я считаю самым полезным хаком и думаю что не требуется слов чтобы объяснять что это такое. Просто правим functions.php своей темы и наслаждаемся.
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 && isset( $_GET["slt-php-errors"] ) && $_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’ );
Ну вроде бы пока что всё. Фух. Осилил. Кто что использует - в камменты!