it-swarm.com.ru

Возможность загрузки логотипа WordPress на панели тем

Привет всем, у меня есть одна проблема при добавлении логотипа в моей панели тем WordPress. Я использую этот код

function logo_display()
{
    ?>
        <input type="file" name="logo" /> 
        <?php echo get_option('logo'); ?>
   <?php
}
function handle_logo_upload()
{
    if(!empty($_FILES["demo-file"]["tmp_name"]))
    {
        $urls = wp_handle_upload($_FILES["logo"], array('test_form' => FALSE));
        $temp = $urls["url"];
       return $temp;   
    }  
    return $option;
}
function display_theme_panel_fields()
{
    add_settings_section("section", "All Settings", null, "theme-options");
    add_settings_field("logo", "Logo", "logo_display", "theme-options", "section");  
    register_setting("section", "logo", "handle_logo_upload");
}
add_action("admin_init", "display_theme_panel_fields");

Проблема в том, что он не сохраняет логотип, а также не отображает его в админке. Я пробовал это 10 раз разными способами, но этот код не работает. Пожалуйста, посмотрите в этот код и помогите мне в этом, пожалуйста.

1
neil

если вы используете настройщик WordPress, попробуйте этот код

public static function register ( $wp_customize ) {
    // Logo upload
    $wp_customize->add_section( 'bia_logo_section' , array(
        'title'       => __( 'Site Logo', 'bia' ),
        'priority'    => 30,
        'description' => 'Upload a logo to replace the default site name and description in the header',
    ) );

    $wp_customize->add_setting( 'bia_logo', array(
        'sanitize_callback' => 'esc_url_raw',
    ) );

    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'bia_logo', array(
        'label'    => __( 'Site Logo', 'bia' ),
        'section'  => 'bia_logo_section',
        'settings' => 'bia_logo',
    ) ) );
}

я думаю, что вы также можете попробовать RedEx Framework для опции панели администратора

1
shamim khan

Начиная с версии 4.5 Theme Logo является стандартной функцией WordPress. Вы можете просто добавить следующий код в свой functions.php:

function wpse237461_theme_logo() {
    add_theme_support( 'custom-logo', array(
        'height'      => 100,
        'width'       => 400,
        'flex-width' => true ) );
    }
add_action( 'after_setup_theme', 'wpse237461_theme_logo' );

Теперь вы можете изменить логотип в настройщике тем и добавить его в свою тему с помощью the_custom_logo(). Не нужно обрабатывать файлы и параметры самостоятельно.

2
cjbj