Intereting Posts
Как я могу изменить этот код footer.php, чтобы вызвать случайное изображение при перезагрузке? Получить архивы в виде массива Есть ли ограничение на количество элементов, которые можно добавить с помощью экрана меню внешнего вида? Сообщения с по меньшей мере 3 тегами списка тегов Пользовательская роль пользователя, не работающая с пользовательским типом сообщения Изображения не отображаются после перемещения установки WordPress с сервера на localhost? Параметры API настройки темы при установке Тип пользовательской почты wp_query по таксономии и стандартная позиция по таксономии Файлы шаблонов пользовательских тем Как добавить настраиваемое поле в сообщение, созданное программно? Как добавить виджет в сторону страницы Как объединить локальные и живые базы данных? Functions.php: исключить категорию из "Blog" пытаясь добавить значение автора в ссылки на страницу wp? Использование переменной в двух функциях

Повторение функции внутри функции

В интересах автоматизации вместо создания длинного списка кода, подобного этому

<td valign="top"width="50%"><p><label for="Facebook"><strong>Facebook URL</strong></label><input type="text" name="Facebook" id="Facebook" size="52" value="<?php echo get_option('Facebook_url'); ?>"/></p></td></tr><tr> 

Я бы хотел, чтобы все это вышло из PHP, чтобы создать страницу. Я создал массив, содержащий все социальные сети, twitter / facebook и т. Д. На данный момент это может прочитать сохраненные настройки, но не позволяет сохранять новые входы.

 function display_settings_fields($value,$key){ $keyurl = $key.'_url'; echo "The key $key has the value $value<br />"; echo '<td valign="top"width="50%"><p><label for="'.$key.'"><strong>'.$key .'URL</strong></label><input type="text" name="'.$key.'" id="'.$key.'" size="52" value="'; echo get_option(''.$keyurl.''); echo '"/></p></td></tr><tr>'; } $social_icon_set = array( "Twitter" =>"$twitter_url", "Facebook" =>"$facebook_url", "GooglePlus" =>"$googleplus_url", "Yelp" =>"$yelp_url", "Youtube" =>"$youtube_url", "Vimeo" =>"$vimeo_url", "Flickr" =>"$flickr_url", "Tumblr" =>"$tumblr_url", "Picplz" =>"$picplz_url", "Foursquare" =>"$foursquare_url", "RSS" =>"$rss_url", "Behance" =>"$behance_url", "Goodreads" =>"$goodreads_url", "Github" =>"$github_url", "Formspring" =>"$formspring_url", "Myspace" =>"$mypsace_url", "Klout" =>"$klout_url", "Diaspora" =>"$diaspora_url", "LinkedIn" =>"$linkedin_url" ); array_walk($social_icon_set,"display_settings_fields"); ?> 

Проблема возникает из-за «echo get_option (''. $ Keyurl. ''); Сейчас он повторяет правильное значение, сохраненное для него значение, но не позволяет сохранить что-либо редактируемое в текстовом поле. Можно ли даже эхо / распечатать это, где его можно найти.

(Это в основном PHP, но если есть другой способ, потому что он использует get_options wordpress, im open для идей)

Используйте API настроек . Взгляд на мой последний плагин поможет вам понять, как зарегистрировать функцию save для ваших полей. Наиболее релевантная выдержка:

 /** * Register custom settings for the fields. * * @see save_settings() * @see print_input_field() * @return void */ public function add_contact_fields() { register_setting( 'general', $this->option_name, array ( $this, 'save_settings' ) ); foreach ( $this->fields as $type => $desc ) { $handle = $this->option_name . "_$type"; $args = array ( 'label_for' => $handle, 'type' => $type ); $callback = array ( $this, 'print_input_field' ); add_settings_field( $handle, $desc, $callback, 'general', 'default', $args ); } } /** * Callback for 'register_setting()'. * * @see add_contact_fields() * @param array $settings * @return array $settings */ public function save_settings( array $settings = array () ) { $default = get_option( $this->option_name ); $settings = array_map( 'trim', $settings ); $settings = $this->prepare_mail_save( $settings, $default ); $settings = $this->prepare_phone_save( $settings ); return $settings; } 

И … добро пожаловать в WordPress Stack Exchange!