web-dev-qa-db-fra.com

Option de téléchargement du logo Wordpress dans le panneau de thème

Bonjour à tous, je suis confronté à un problème en ajoutant une option de logo dans mon panneau de thème de wordpress J'utilise ce code

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");

Le problème est qu'il ne sauvegarde pas le logo et ne l'affiche pas non plus dans admin. J'ai essayé ceci 10 fois avec différentes manières mais ce code ne fonctionne pas. S'il vous plaît regardez dans ce code et aidez-moi s'il vous plaît.

1
neil

si vous utilisez wordpress customizer alors essayez ce code

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',
    ) ) );
}

je pense que vous pouvez aussi essayer framework redux pour l’option panneau d’administration

1
shamim khan

Depuis la version 4.5, le Thème Logo est une fonctionnalité standard de WordPress. Vous pouvez simplement ajouter le code suivant à votre 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' );

Maintenant, vous pouvez changer le logo dans le personnalisateur de thème et vous pouvez l'ajouter à votre thème avec the_custom_logo(). Pas besoin de gérer les fichiers et les options vous-même.

2
cjbj