Intereting Posts
Невозможно изменить идентификатор моего сайта в apperances Рекомендации по использованию пользовательских типов сообщений add_rewrite_endpoint не работает Отображение полей Frontend Post Excerpt Переписывать встроенную разметку изображения Переписать URL-адрес настраиваемого типа сообщений для заданий Как я могу использовать 2 базы данных с одной установкой WordPress Категории показывают ошибку 404 при многоуровневой установке Трек регистрируется в посещениях пользователей Показывать внуков на страницах ребенка и внуков с помощью wp_list_pages После завершения создания сайта на localhost, как мне передать все на сервер клиента? Скрыть изображение на WordPress на одной странице Удалить все, опубликованные и обработанные сообщения в пользовательском типе сообщения Боковая панель – Тематическая схема add_filter несколько раз с различными функциями аддона?

«Неверная ошибка» при сохранении параметров темы – только в Google Chrome

У меня есть пользователи, когда вы получаете «Неверную ошибку» при попытке изменить настраиваемые параметры темы в моей теме WPFolio. Параметры (только некоторые правила CSS: цвет контейнера страницы, цвет шрифта, шрифт заголовка / тела и т. Д.) Работают так, как должны в Firefox, Safari и IE, и любые изменения, которые они делают, будут отображаться в Chrome. Но когда они пытаются отредактировать / сохранить параметры темы в Chrome, они получают ошибку «Недопустимое значение» в определенном поле, когда они пытаются сохранить в Chrome, даже если они не коснулись этого поля.

Странно то, что я не могу воспроизвести ошибку независимо от того, какой браузер я использую …

Есть идеи? Благодаря!

Посмотрите файлы темы на github .

Solutions Collecting From Web of "«Неверная ошибка» при сохранении параметров темы – только в Google Chrome"

Эмм, да. Я не знаю, в чем именно заключается ваша проблема, поэтому некоторые замечания о коде ниже.

Вы должны использовать API настроек. Вот (новый) учебник Чипа Беннета. То, как вы вызываете свои установленные в настоящий момент параметры (один вызов get_option для каждого массива), вы имеете около 11 db-вызовов только для ваших опций. Если вы не задумываетесь о переключении на API настроек, вы все равно должны только вызвать get_option один раз, сохранить его в некоторой переменной, например $current_options = get_options('whatever'); а затем перейдите через него с помощью $current_options['some_sub_arr']; ,

Я стараюсь не быть суровым, поэтому, пожалуйста, не делайте это неправильно: файл близок к нечитаемому (для меня). Так много ненужных вкладок и разрывов строк. Я надеялся, что смогу помочь, но я не могу помочь вам с вашей конкретной проблемой.

Может быть, это помогает: Есть много других вещей, которые я могу сказать об этой теме. Надеюсь, вы можете принять некоторую (положительную) критику (что помогает сделать ее лучше).

  • Пока вы не хотите использовать $ var внутри строки, вам не нужно использовать двойные кавычки. Пример:
    array( "key" => "value" ) может быть записано как array( 'key' => 'value' ) и будет намного быстрее (опробовано до 5 раз быстрее).
  • При использовании массивов числовых индексов вам не нужно писать array( '0' => 'value' ) , это числовой массив по умолчанию, если вы не укажете ключ.
  • Никогданикогда: никогда не используйте имена переменных, например $options вне класса. Они будут заполнять глобальное пространство имен и иногда (конечно) конфликтуют с некоторыми другими вещами

Чтобы обрабатывать имена централизованно (а не распространяться на все файлы, такие как $options ):

  $wpfolio_options_default = array ( '...' => '...' ); define ( 'WPFOLIO_OPTS', 'wpfolio_options_theme' ); // your global $var for theme users - do this only when you're really sure that nothing will change in there. Ever. $wpfolio_options = get_option( WPFOLIO_OPTS ); function template_tag_whatever() { // If you're in the need to change the name of the options field in the DB, change it above in the define call $all_options = get_option( WPFOLIO_OPTS ); // if you've made your options globaly available (if the behavior might change - themes may break, so do this with caution) // global $wpfolio_options // $background = $wpfolio_options['background_class']; $background = $all_options['background_class']; ?> <div class="<?php echo $background; ?>"> <!-- some stuff --> </div> <?php } // inside a template: global $wpfolio_options; if ( isset($wpfolio_options['portfolio_category']) ) { echo $wpfolio_options['portfolio_category']; } 

Но: Еще лучше – и намного проще – иметь дело с API настроек. Вышеупомянутый пример упоминается только для того, чтобы показать вам, насколько проще обрабатывать имена через константы (см. STYLESHEETPATH ​​и т. Д.).