Поддержка Темы и шаблоны Проблема с админ панелью темы

  • Здравствуйте друзья, помогите пожалуйста.
    У меня такая проблема: я создаю тему с админ панелью. В админ панели создал несколько полей, через которые буду передавать данные на сайт.
    Но писать поля полностью займет очень много места и файл будет очень много занимать.
    Я создал функцию, а потом обращаюсь к ней из места, где хочу вывести определенное поле.

    function get_image_field( $field, $field_name, $button_id ) {
    ?>
    <label for="r_options[<?php echo $field; ?>]"><?php echo $field_name; ?></label>
    <input type="text" id="r_options[<?php echo $field; ?>]" class="upload_image" name="r_options[<?php echo $field; ?>]" value="<?php echo esc_attr( $options[$field] ); ?>" />
    <input type="button" id="<?php echo $button_id; ?>" class="upload_image_button" value="Upload" />
    <?php
    }

    Если я использую функцию, то данные отправляются через форму, но не сохраняются в поле, не понимаю почему это так?

    Если же писать для каждого поля без использования функции код с label, input и button, то это займет очень много места, но при таком подходе при отправки формы данные сохраняются в поле.
    То есть при таком коде данные сохраняются, но это без функции.

    <label for="r_options[r_logo_url]">Upload Logo</label>
    <input type="text" id="r_options[r_logo_url]" class="upload_image" name="r_options[r_logo_url]" value="<?php echo esc_attr( $options['r_logo_url'] ); ?>" />
    <input type="button" id="r_logo_upload_button" class="upload_image_button" value="Upload" />

    Первый скрин (без использования функции):
    http://i.pixs.ru/storage/2/7/0/Snimokekra_6578211_10904270.png
    Второй скрин (с использованием функции):
    http://i.pixs.ru/storage/2/7/5/Snimokekra_2571682_10904275.png

    На рисунках видно, что в первом случае данные отправляются и сохраняются в полях, а во втором данные только отправляются.
    Прошу Вашей помощи. Буду очень благодарен.

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Модератор Yuri

    (@yube)

    Если я использую функцию, то данные отправляются через форму, но не сохраняются в поле, не понимаю почему это так?

    У меня есть подозрения, что сохраняются, но не выводятся в полях формы.

    function get_image_field( $field, $field_name, $button_id ) {
    ...
    value="<?php echo esc_attr( $options['r_logo_url'] ); ?>"

    $options откуда возьмется?

    У меня перед началом формы есть код:

    <?php $options = get_option( 'r_options' ); ?>

    А также в самом низу есть функция:

    /* Get options */
    if ( !function_exists( 'r_get_option' ) ) :
    function r_get_option( $option ) {
    	$options = get_option( 'r_options', r_default_options() );
    	return $options[ $option ];
    }
    endif;

    Если можете, дайте пожалуйста свой скайп или почту, я бы Вам отправил весь файл, Вы бы посмотрели и сказали, что к чему..

    Модератор Yuri

    (@yube)

    Почитайте про область видимости переменных в php.

    Спасибо, буду пробывать

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Проблема с админ панелью темы» закрыта для новых ответов.