2016-03-28 4 views
1

Рассмотрим следующий код плагина для WordPress: -Почему загрузочный лоток для Wordpress?

<?php 
/** 
* Plugin Name: test 
* Description: This plugin is just a test for bootstrap css 
* Version: 1.0.0 
* Author: Gavin Simpson 
* License: GPL2 
*/ 

class testclass 
{ 
    private static $instance; 
    public static function get_instance_advert() 
    { 
     if(null == self::$instance) 
     { 
      self::$instance = new testclass(); 
     } 
     return self::$instance; 
    } 

    private function __construct() 
    { 
     add_action('admin_enqueue_scripts', array($this,'inistyleheets')); 
    } 
    function inistyleheets() 
    { 
     wp_register_style('mybootstrap', plugins_url() . '/test/assets/bootstrap-3.3.5-dist/css/bootstrap.min.css'); 
     wp_enqueue_style('mybootstrap'); 
    } 
} 
add_action('plugins_loaded', array('testclass', 'get_instance_advert')); 
?> 

При активации выше, кнопка «Параметры экрана» в Wordpress Администратор перестает работать.

Проблема на 100% связана с загрузкой только Bootstrap css, поэтому пример не загружает само загрузочный файл. В моем рабочем коде bootstrap работает отлично, он просто разбивает кнопку «Параметры экрана», как описано, так же, как и основной код плагина выше.

Я пробовал все основные темы, т. Е. Двадцать четыренадцать, двадцать четыре & двадцатый. Не повезло ни с одним из них, все равно.

Я искал Google и пытался использовать различные методы для загрузки css в течение нескольких часов безрезультатно, поэтому любая помощь будет оценена по достоинству.

Спасибо.

+0

проверьте консоль и рендеринг css? – David

+0

пульт пустой. сделанный css не показывает ничего очевидного. –

+0

Единственное, что я могу придумать: если вы видите событие клика на кнопке, возможно, бутстрап накрывает кнопку другим, для чего он изменил правила. – David

ответ

1

Долгосрочное решение, поэтому не будем повторять его здесь, но ссылка http://rushfrisby.com/using-bootstrap-in-wordpress-admin-panel/. (Да, я знаю, что размещение ссылки не круто, но я бы не хотел копировать и вставлять какие-то решения elses).

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

0

Не знаю, если вы все еще смотрите на это, но я столкнулся с той же проблемой. Я обнаружил, что проблема связана с именем класса на элементах управления на панели «Параметры экрана», wordpress load-options css содержит запись, которая нацелена на элементы со «скрытым» классом и устанавливает «display: none», что гарантирует, что эти элементы не отображаются первоначально.

При нажатии кнопки «Параметры экрана» запускается функция javascript, которая должна отображать эту панель, поскольку она устанавливает свойство стиля для этих элементов с помощью «display: block», это должно переопределять инструкции css.

Однако у bootstrap css также есть инструкция css, которая нацелена на имя класса 'hidden', но содержит 'display: none! Important' '! Important' заставляет оператор bootstrap css сохранять переопределение «display: block», который установленный на самом элементе. поэтому грязным решением было бы удалить важную часть из бутстрапа css.

2

Для случая кнопку «Параметры экрана» не работает (и, возможно, в некоторых других случаях), вы можете попробовать использовать

.hidden[style*='display: block'] { 
    display:block !important; 
} 

в некоторых CSS загружен после начальной загрузки. Ограниченное тестирование показывает, что кнопка теперь работает, но содержимое раскрывающегося списка выглядит по-разному из-за стиля Bootstrap. Из-за этого я ограничил enqueuing bootstrap только экранами администратора, которые мне действительно нужны. Я не уверен, что это стоит того, чтобы попытаться исправить стиль этого элемента.

Смежные вопросы