что такое имя_параметра в базе данных, которое хранит информацию о текущем виджет-инициаторе в боковой панели frontend?

что такое имя_параметра в базе данных, которое хранит информацию о текущем виджет-инициаторе в боковой панели frontend?

Solutions Collecting From Web of "что такое имя_параметра в базе данных, которое хранит информацию о текущем виджет-инициаторе в боковой панели frontend?"

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

Тем не менее , есть еще способ настроить отображение виджета по умолчанию, когда вы устанавливаете тему в первый раз. Если вы посмотрите на тему TwentyTen по умолчанию, вы увидите, что она определяет список виджетов «по умолчанию», которые будут загружены, если у пользователя нет динамической боковой панели:

<div id="primary" class="widget-area" role="complementary"> <ul class="xoxo"> <?php /* When we call the dynamic_sidebar() function, it'll spit out * the widgets for that widget area. If it instead returns false, * then the sidebar simply doesn't exist, so we'll hard-code in * some default sidebar stuff just in case. */ if ( ! dynamic_sidebar( 'primary-widget-area' ) ) : ?> <li id="search" class="widget-container widget_search"> <?php get_search_form(); ?> </li> <li id="archives" class="widget-container"> <h3 class="widget-title"><?php _e( 'Archives', 'twentyten' ); ?></h3> <ul> <?php wp_get_archives( 'type=monthly' ); ?> </ul> </li> <li id="meta" class="widget-container"> <h3 class="widget-title"><?php _e( 'Meta', 'twentyten' ); ?></h3> <ul> <?php wp_register(); ?> <li><?php wp_loginout(); ?></li> <?php wp_meta(); ?> </ul> </li> <?php endif; // end primary widget area ?> </ul> </div><!-- #primary .widget-area --> 

Этот кодовый блок жестко кодирует виджет поиска, виджет архива и мета-виджет. Довольно простой, но это означает, что новые блоги всегда будут показывать что-то полезное на боковой панели, даже если у владельца еще не было возможности настроить сайт пока.

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

Решаемые. То, что сказал ЕАманн, прав. Проблема заключается в настройке системы виджетов в WordPress. Для каждого виджета с несколькими экземплярами, такого как текст, информация хранится в другом имени параметра, где значение каждого виджета хранится сериализованным образом.

Трюк заключается в том, как мы храним информацию в виде сериализованного текстового виджета, которая иногда имеет специальные символы. Мы должны использовать heredoc. Использование heredoc заключается в том, чтобы избежать ситуации, когда строка должна содержать ['] и ["], потому что обе не могут использоваться на одной линии вместе.

 $serialize_sidebar_widgets = <<< EOD a:7:{s:19:"wp_inactive_widgets";a:0:{}s:9:"sidebar-1";a:1:{i:0;s:6:"text-3";}s:9:"sidebar-2";a:0:{}s:9:"sidebar-3";a:0:{}s:9:"sidebar-4";a:0:{}s:9:"sidebar-5";a:0:{}s:13:"array_version";i:3;} EOD; $serialize_widgets_text = <<< EOD a:3:{i:2;a:0:{}i:3;a:3:{s:5:"title";s:5:"hello";s:4:"text";s:21:"saya hellokankamu yah";s:6:"filter";b:0;}s:12:"_multiwidget";i:1;} EOD; 

Теперь мы можем сохранить их в базе данных:

 $wpdb->update( $wpdb->options, array( 'option_value' => $serialize_sidebar_widgets ), array( 'option_name' => 'sidebars_widgets' ) ); $wpdb->update( $wpdb->options, array( 'option_value' => $serialize_widgets_text ), array( 'option_name' => 'widget_text' ) ); 

PS: Если мы храним многоэкранные виджеты, мы должны помнить, что виджеты имеют собственную конфигурацию. Например, текстовый виджет хранится в 'widget_text'

PS: Читайте, как использовать heredoc в PHP .