ГлавнаяWordpressАдминка → 12 приемов с админкой WordPress (сайт для клиента)

12 приемов с админкой WordPress (сайт для клиента)

Комментариев: 6212 приемов с админкой WordPress (сайт для клиента)
  • Снова здравствуйте. smile Может я не по теме пишу, но прошу не ругать меня строго. *sorry* Вообщем, такая есть небольшая проблемка.sad Нужно мне сделать, так чтобы у меня была выпадающее меню или прыгающее как у вас на сайте. Ну, тоесть чтобы можно было нажать "История" и выпало "История Франции","История России" и тд. ( Например, верхняя панель админки вордпресса такая) Я как не пытался сделать это, но к сожалению не получилось. Заглавную рубрику видно, а остальные нет. sad

    ОТВЕТИТЬ ↓
    • Изучайте CSS или заплатите чтобы сделали вам. Чего-то другого посоветовать сложно.

      ОТВЕТИТЬ ↓
      • ясно, спасибо за ответ. smile А в каком файле редактируется меню? ( Прощу прощения за глупый вопрос).

        ОТВЕТИТЬ ↓
  • Еще один фокус с админкой - после регистрации перенаправляет пользователя на главную страницу (не посылает юзера в админку)

    // Redirect admins to the dashboard and other users elsewhere
    add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );
    function my_login_redirect( $redirect_to, $request, $user ) {
        // Is there a user?
        if ( is_array( $user->roles ) ) {
            // Is it an administrator?
            if ( in_array( 'administrator', $user->roles ) )
                return home_url( '/wp-admin/' );
            else
                return home_url();
                // return get_permalink( 83 );
        }
    }
    

    Для того кто публикует посты - это бессмысленно, но для обычного комментатора - нужная вещь. Можно доработать и перенаправлять на ту страницу с которой был вход, и добавить поддержку ролей пользователя чтобы на автора этот код не распространялся (как я понял "10" - означает чтобы код не работал для админа, заместо return home_url(); вы можете указать нужную вам страницу: return get_permalink( 83 ); )

    if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) {
    	add_filter('login_redirect', 'my_login_redirect', 10, 3);
    	function my_login_redirect() {
    		$location = $_SERVER['HTTP_REFERER'];
    		wp_safe_redirect($location);
    		exit();
    	}
    }
    

    - этот код в файле functions.php возвратит на просматриваемую страницу

    p.s. сам еще не проверял. К примеру будет ли работать 2й код если я зашел на сайт прямым входом (ввёл в строке браузера адрес)?

    ОТВЕТИТЬ ↓
  • // Add a warning box to the settings page
     // Uses the same style box as the WordPress Update "update-nag"
     function my_admin_notice(){
     global $current_screen;
     if ( $current_screen->parent_base == 'options-general' ){
     echo '<div id="admin-settings-warning-box"><strong>Warning</strong> - changing settings on these pages may cause problems with your website’s design!</div>';
     }
     }
     add_action('admin_notices', 'my_admin_notice');

    - добавляет предупреждения на странице настроек

    // Add your own Admin Dashboard footer credits
     function wp_admin_dashboard_custom_footer_text( $default_text ) {
     return '<span id="footer-thankyou">Website created by <a href="http://www.www.gravitationalfx.com" target="_blank" title="Affordable Web Design in Dublin Ireland">Gravitational FX</a><span> | Powered by <a href="http://www.wordpress.org" target="_blank">WordPress</a>';
     }
     add_filter( 'admin_footer_text', 'wp_admin_dashboard_custom_footer_text' );

    - в футере вы можете указать как с вами связаться (с программистом или как вам там называют smile )

    // Remove the favourite actions drop-down menu
    function wp_admin_dashboard_remove_fav_actions(){
    return array();
    }
    add_filter('favorite_actions','wp_admin_dashboard_remove_fav_actions');

    - удаляет любимые действия (“favourite actions” ) - выпадающий список

    информация с этого сайта

    ОТВЕТИТЬ ↓
  • 2й пункт можно добавить. Изменить полностью форму регистрации через замену стиля login.css:

    в functions.php добавить

    //Custom Login Page
    function custom_login() {
    echo '
    ';
    }
    add_action('login_head', 'custom_login');

    затем создать custom-login.css и поместить туда код:

    /* Custom Login Styles */
    
    html {background:url("bg-gradient.png") repeat-x scroll 0 0 #FF0000	}
    
    h1 a { background:url("brand2.png") 0 0 no-repeat; width:330px; height:130px; } 
    
    h1 a:hover {border: none;}
    
    #backtoblog  { background: -moz-linear-gradient(100% 100% 90deg, #FFFFFF, #E4E4E4);
                         background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#FFFFFF), to(#E4E4E4)); }
    
    body.login {border-top-color:#dff4fc;}	
    
    .login p#backtoblog a:link, .login p#backtoblog a:visited {color:#17272d;}	
    
    .login p#backtoblog a:hover, .login p#backtoblog a:active {color:#17272d;text-decoration:underline;}	
    
    a {color: #FF0000; text-decoration: none;}
    
    a:hover {color: #AB0404; }
    
    .login #nav a { color:#FFF !important; }
    
    .login #nav a:hover { color:#D5D5D6  !important;  }

    в корневой папке блога создать папку custom-login и поместить туда созданный файл стилей.

    более продвинутая стилизация тут

    ОТВЕТИТЬ ↓
  • в админ бар добавляет ссылки:

    function my_admin_bar_menu() {
    	global $wp_admin_bar;
    	if ( !is_super_admin() || !is_admin_bar_showing() )
    		return;
    	$wp_admin_bar->add_menu( array(
    	'id' => 'custom_menu',
    	'title' => __( 'SumTips Menu'),
    	'href' => FALSE ) );
    	$wp_admin_bar->add_menu( array(
    	'parent' => 'custom_menu',
    	'title' => __( 'My First Link'),
    	'href' => 'http://sumtips.com/' ) );
    	$wp_admin_bar->add_menu( array(
    	'parent' => 'custom_menu',
    	'title' => __( 'My Second Link'),
    	'href' => '#' ) );
    }
    add_action('admin_bar_menu', 'my_admin_bar_menu');

    - необходимо для клиента если ему нужно отслеживать себя в соц сетях, или переход например в яндекс метрику (клиент бывает хочет и такое- ему лень внизу по счетчику кликнуть)

    function admin_bar_delete_option() {
      global $wp_admin_bar;
      if ( !is_super_admin() || !is_admin_bar_showing() )
          return;
      $current_object = get_queried_object();
      if ( !empty( $current_object->post_type ) &&
         ( $post_type_object = get_post_type_object( $current_object->post_type ) ) &&
         current_user_can( $post_type_object->cap->edit_post, $current_object->ID )
      ) {
        $wp_admin_bar->add_menu(
            array( 'id' => 'delete',
                'title' => __('Delete'),
                'href' => get_delete_post_link($current_object->term_id)
            )
        );
      }
    }
    add_action( 'admin_bar_menu', 'admin_bar_delete_option', 40 );

    - а это добавляет кнопки удалить и редактировать пост и страницу

    взято с сайта

    ОТВЕТИТЬ ↓
  • Этот код может вам изменить описание у кнопки возврата на главную страницу сайта:

    // Customize Admin header title (replaces site title / bloginfo('name') )
    function replace_admin_bloginfo_name($output)
    {
    	if ( is_admin() ) {
    	    $output = 'Back to Home page »';
    	}
    	return $output;
    }
    add_filter( 'bloginfo', 'replace_admin_bloginfo_name' );

    -замените вашим текстом 'Back to Home page »'

    ОТВЕТИТЬ ↓
  • function remove_editor_menu() {
      remove_action('admin_menu', '_add_themes_utility_last', 101);
    }
    
    add_action('_admin_menu', 'remove_editor_menu', 1);

    - удаляет редактор темы вордпресс

    function customize_meta_boxes() {
      /* Removes meta boxes from Posts */
      remove_meta_box('postcustom','post','normal');
      remove_meta_box('trackbacksdiv','post','normal');
      remove_meta_box('commentstatusdiv','post','normal');
      remove_meta_box('commentsdiv','post','normal');
      remove_meta_box('tagsdiv-post_tag','post','normal');
      remove_meta_box('postexcerpt','post','normal');
      /* Removes meta boxes from pages */
      remove_meta_box('postcustom','page','normal');
      remove_meta_box('trackbacksdiv','page','normal');
      remove_meta_box('commentstatusdiv','page','normal');
      remove_meta_box('commentsdiv','page','normal');
    }
    
    add_action('admin_init','customize_meta_boxes');

    - этот код в написании поста отключает трекбеки, комментарии (настройка разрешены или нет), теги и т.д.

    'commentstatusdiv' - Comments status metabox.
    'commentsdiv' - Comments metabox.
    'slugdiv' - Slug metabox.
    'revisionsdiv' - Revisions metabox.
    'authordiv' - Author metabox.
    'postcustom' - Custom fields metabox.
    'postexcerpt' - Excerpt metabox.
    'trackbacksdiv' - Trackbacks metabox.
    'postimagediv' - Featured image metabox.
    'formatdiv' - Formats metabox.
    'tagsdiv-post_tag' - Tags metabox.
    'categorydiv' - Categories metabox.
    'pageparentdiv' - Attributes metabox.

    можно даже удалить кнопку "Опубликовать":

    function remove_publish_box()
    {
    	remove_meta_box( 'submitdiv', 'custom_post_slug', 'side' );
    }
    add_action( 'admin_menu', 'remove_publish_box' );

    - тем самым пост будет сохраняться только автоматически .

    add_editor_style ('CSS / редактора style.css'); 

    - изменить стиль WYSIWYG редактора (под ваш дизайн)

    источник и кодекс

    ОТВЕТИТЬ ↓
  • В дополнение 1 пункта.
    Понадобилось мне по уровням пользователя ограничить доступ к меню (в примере к консоли)

    Этот код, всем пользователям, уровень которых менее 3 не будет показывать консоль:

    function remove_menus() {
    //получаем текущий уровень пользователя (level)
    global $current_user;
    get_currentuserinfo();
    //если текущий уровень пользователя ниже 3, удаляем ему ссылку на консоль (Dashboard)
    if ($current_user->user_level < 3)
    {
    	global $menu;
    	$restricted = array(__('Dashboard'));
    	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_init','remove_menus');

    то-есть Подписчик (обычный зареганный пользователь) не увидит кроме своего профиля в админке ничего

    ОТВЕТИТЬ ↓
    • Всплыла небольшая проблемка - мы удалили консоль из админки, но забыли про админ бар (вверху полоска с навигацией). Ниже код который уберет ссылку на консоль из админ бара

      function on_admin_bar_render()
      {
      //retrieve current user info
      global $current_user;
      get_currentuserinfo();
      if ($current_user->user_level < 3)
      {
      	global $wp_admin_bar;
      	$wp_admin_bar->remove_menu('dashboard');
      }
      }
      add_action( 'wp_before_admin_bar_render', 'on_admin_bar_render' );
      ОТВЕТИТЬ ↓
  • function my_remove_adminmenu(){
      global $menu;
      $menu = array();
      echo "<style type='text/css'>#adminmenuwrap, #adminmenuback{display:none!important;} #wpcontent{margin-left:10px!important;}</style>";
    }
    add_action('admin_head', 'my_remove_adminmenu');

    А этот код полностью удалит панель слева smile .При желании можно по уровням пользователей смастерить

    ОТВЕТИТЬ ↓
  • У мня вообще трабла появилась:
    1) Во первых пропало в админке выпадающее меню в консоле на обновление плагинов и движка...
    2) При заходе на /wp-admin/update-core.php выдается "Вы не имеете достаточно прав для доступа к данной странице."

    Префиксы никакие не менял в конфиге стоит wp_1 и в таблицах тоже самое... Т.е. разночтения нет... Права тоже вроде проверил на папке wp-admin 700 на файлах внутри 644...
    Голову сломал уже... Можете подсказать, плиз!

    ОТВЕТИТЬ ↓
    • после каких действий эта "трабла" появилась? в functions.php что прописывали или последние установленные плагины?

      ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

X

Забыли пароль?