Fatal Error après réinstallation manuelle et mise à jour (Créer un compte)

  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 15)
  • Auteur
    Messages
  • #518959
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 3.5
    – Version de PHP/MySQL : 5
    – Thème utilisé : Sleek Black modifié
    – Extensions en place :
    – Nom de l’hebergeur : Planethoster
    – Adresse du site : cmaison.eu/wp/

    Problème(s) rencontré(s) :

    Hello there !

    Ayant changé d’hébergement, j’ai fait ce soir une réinstallation manuelle (base sql et fichiers) de mon wordpress après avoir installé un wordpress vierge via Softaculous.
    Mon ancien système une fois réinstallé, il faut savoir que le thème de mon site est basé sur le thème Sleek-Black.
    Une fois la réinstallation faite, j’ai fais mes mises à jours dont celle de wordpress (la toute dernière mise à jour donc). Puis j’ai voulu ré-activer mon thème perso. Mais quand j’ai cliqué sur « activer » j’ai eu ce message-ci :

    Fatal error: Cannot redeclare sleekblack_load_scripts() (previously declared in /[…]/wp-content/themes/mon_theme/functions.php:3) in /[…]/wp-content/themes/sleek-black/functions.php on line 9

    Et j’ai même ce message quand je veux aller sur mon site directement…

    Vous avez une idée du soucis ???

    Merci d’avance !

    #873900
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Le message nous dit que la fonction a déjà été déclarée dans /wp-content/themes/mon_theme/functions.php

    Quel est le thème actif, s’agit il d’un thème enfant de sleek-black?

    #873901
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Il s’agit d’un thème enfant du Sleek-Black :

    previously declared in /[…]/wp-content/themes/mon_theme/functions.php:3

    #873902
    Guy
    Participant
    Maître WordPress
    14817 contributions

    ba… cela n’était précisé nulle part et on ne sait pas non plus comment tu as fait, on doit donc faire des déductions à partir de ce que tu peux dire.

    Le message est clair, la fonction est dupliquée dans le thème enfant.

    previously declared in /[…]/wp-content/themes/mon_theme/functions.php:3

    Explication: Dans les thème enfants, WordPress appelle en premier le fichier functions.php du thème enfant, puis celui du thème parent, si une fonction du même nom est dans les deux, cela provoque l’erreur ci dessus.

    Si cela fonctionnait avant, tu avais probablement modifié directement dans le thème parent (et une mise à jour du thème aurait donc écrasé tes modifs) ou tu n’as pas exactement repris les fichiers du thème enfant.

    #873903
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Désolé pour le manque de précisions, je mettrai ça sur le dos de l’heure tardive d’envoi du post ^^

    Pour ce qui est de reprendre exactement les fichiers du thème enfant, je me suis contenter d’uploader sur le serveur tous les fichiers de mon dernier backup et donc le thème enfant était dedans. J’ai du mal à imaginer que tout ne ce soit pas uploader correctement.
    De plus, avant de changer d’hébergeur, au moment du backup du site, ce dernier fonctionnait nickel. Je sais pas trop comment m’en sortir :-/

    NB : merci pour la rapidité de réponse 😉

    #873904
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Ce n’est pas un problème de copie, je n’ai encore jamais vu de copie défectueuse ou incomplète qui irait créer un fichier functions.php syntaxiquement correct.

    Le thème parent a t il été mis à jour? Avais tu modifié les fichiers originaux du thème parent dans ta précédente installation?

    #873905
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Alors oui, j’ai mis à jour le thème parent avant que tout plante. Mais je ne me souviens plus si j’avais modifié le thème parent dans la précédente installation. À mon avis non, j’avais du suivre les conseils de créations de child theme qui faisaient en sorte qu’on n’ai pas à toucher au thème parent.

    #873906
    Guy
    Participant
    Maître WordPress
    14817 contributions

    A mon avis tu avais certainement modifié quelque chose et je suppose que si tu remets les anciens fichiers sauvegardés de ton thème parent, cela va fonctionner.

    Tu peux essayer de regarder l’ancien fichier functions.php de ton thème parent et en particulier la fonction sleekblack_load_scripts pour voir à quoi elle ressemble. Si tu as des doutes, tu peux afficher le fichier ici (avec les balises code, le gros C noir au dessus)

    #873907
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Merci du conseil, je vais d’abord remettre le thème parent de mon backup pour écraser celui actuel. Et si ça marche, fini les MAJ automatiques de ce thème !

    #873908
    Guy
    Participant
    Maître WordPress
    14817 contributions

    Euh… non, si les auteurs du thème font des mises à jour c’est aussi probablement pour résoudre des bugs ou des problèmes de compatibilité. Je chercherai plutôt dans l’architecture du thème enfant pour détecter les problèmes.
    De toute façon avec les thèmes enfants, j’ai pris l’habitude d’éviter les mises à jour automatiques et de valider sur une installation locale ou de test avant de faire les mises à jour du thème parent.

    #873909
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Oui bien vu. Je ferai de même à l’avenir :-/

    #873910
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Bon j’ai remplacé le thème parent par celui de mon backup mais ça ne change rien.

    Si quelqu’un pouvait jeter un coup d’oeil sur les fichiers functions.php des deux thèmes ?

    Merci d’avance !

    Thème parent


    __( ‘Primary Navigation’, ‘Sleek Black’ ),
    ) );
    }
    // ********************************* CALLING PG *********************************
    function sleekblack_pagination($pages =  », $range = 4){
    $showitems = ($range * 2)+1;
    global $paged;
    if(empty($paged)) $paged = 1;
    if($pages ==  »)
    {global $wp_query;
    $pages = $wp_query->max_num_pages;
    if(!$pages)
    {$pages = 1;
    }
    }
    if(1 != $pages)
    {
    echo « <span>Page « .$paged. » of « .$pages. »</span>« ;
    if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>« First</a>« ;
    if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹ Previous</a>« ;
    for ($i=1; $i = $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
    {
    echo ($paged == $i)? "<span class="current">« .$i. »</span>« : »<a href='".get_pagenum_link($i)."' class="inactive">« .$i. »</a>« ;
    }
    }
    if ($paged < $pages && $showitems < $pages) echo "<a>Next ›</a>« ;
    if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>Last »</a>« ;
    echo « n »;
    }
    }
    // ********************************* CALLING WG *********************************
    register_sidebar(array(
    ‘id’ => ‘sidebar’,
    ‘name’ => ‘Sidebar’,
    ‘description’ => ‘Sidebar on the right.’,
    ‘before_widget’ => ‘<div class="sidebarWrapper"><div class="sidebarHeader"></div>‘,
    ‘after_widget’ => ‘</div><div class="sidebarFooter"></div></div>‘,
    ‘before_title’ => ‘<h4>‘,
    ‘after_title’ => ‘</h4><div class="sidebar">‘,
    ));
    register_sidebar(array(
    ‘id’ => ‘box-left’,
    ‘name’ => ‘Box Left’,
    ‘description’ => ‘Box on the top left.’,
    ‘before_widget’ => ‘<div class="boxWrapper"><div class="boxHeader"></div>‘,
    ‘after_widget’ => ‘</div><div class="boxFooter"></div></div>‘,
    ‘before_title’ => ‘<h3>‘,
    ‘after_title’ => ‘</h3><div class="box">‘,
    ));
    register_sidebar(array(
    ‘id’ => ‘box-center’,
    ‘name’ => ‘Box Center’,
    ‘description’ => ‘Box on the top center.’,
    ‘before_widget’ => ‘<div class="boxWrapper"><div class="boxHeader"></div>‘,
    ‘after_widget’ => ‘</div><div class="boxFooter"></div></div>‘,
    ‘before_title’ => ‘<h3>‘,
    ‘after_title’ => ‘</h3><div class="box">‘,
    ));
    register_sidebar(array(
    ‘id’ => ‘box-right’,
    ‘name’ => ‘Box Right’,
    ‘description’ => ‘Box on the top right.’,
    ‘before_widget’ => ‘<div class="boxWrapper"><div class="boxHeader"></div>‘,
    ‘after_widget’ => ‘</div><div class="boxFooter"></div></div>‘,
    ‘before_title’ => ‘<h3>‘,
    ‘after_title’ => ‘</h3><div class="box">‘,
    ));
    ?>
    comment_type ) :
    case  » :
    ?>
    <li id= »li-comment-« >
    <div class="comments" id="comment-« >
    <div class="commentsData user_id) $oddcomment = « authcomment »; echo $oddcomment; ?> »>
    <div class="gravatar"></a></div>
    <div class="author">
    <div class="authorName"></div>
    <div class="authordate"><a href="comment_ID ) ); ?> »></a> </div>
    </div>
    <div class="clear"></div>
    </div>
    <div class="commentBody">
    comment_approved == ‘0’ ) : ?>
    <em>Your comment is awaiting moderation.</em>
    <br />

    </div>
    <div class="commentReply"> $depth, ‘max_depth’ => $args[‘max_depth’] ) ) ); ?></div>
    <div class="clear"></div>
    </div>

    <li class="post pingback">
    <p>Pingback: </p>
    <?php
    break;
    endswitch;
    }
    endif;
    // ********************************* CALLING BC *********************************
    function sleekblack_get_breadcrumbs()
    {
    global $wp_query;
    if ( !is_home() ){
    // Start the UL
    echo '<ul>‘;
    // Add the Home link
    echo ‘<li><a href="'. home_url() .'">‘. get_bloginfo(‘name’) .’</a></li>‘;
    if ( is_category() )
    {
    $catTitle = single_cat_title( «  », false );
    $cat = get_cat_ID( $catTitle );
    echo « <li>   » « . get_category_parents( $cat, TRUE,  » »  » ) . »</li>« ;
    }
    elseif ( is_archive() && !is_category() )
    {
    echo « <li> » Archives</li>« ;
    }
    elseif ( is_attachment() ) {
    echo « <li> » Media Attachment</li>« ;
    }
    elseif ( is_search() ) {
    echo « <li>   » Search Results</li>« ;
    }
    elseif ( is_404() )
    {
    echo « <li>   » 404 Not Found</li>« ;
    }
    elseif ( is_single() )
    {
    $category = get_the_category();
    $category_id = get_cat_ID( $category[0]->cat_name );
    echo ‘<li>   » ‘. get_category_parents( $category_id, TRUE, « </li><li>   »  » );
    echo the_title( », », FALSE) . »</li>« ;
    }
    elseif ( is_page() )
    {
    $post = $wp_query->get_queried_object();
    if ( $post->post_parent == 0 ){
    echo « <li>  » « .the_title( », », FALSE). »</li>« ;
    } else {
    $title = the_title( », », FALSE);
    $ancestors = array_reverse( get_post_ancestors( $post->ID ) );
    array_push($ancestors, $post->ID);

    foreach ( $ancestors as $ancestor ){
    if( $ancestor != end($ancestors) ){
    echo ‘<li>  » <a href="'. get_permalink($ancestor) .'">‘. strip_tags( apply_filters( ‘single_post_title’, get_the_title( $ancestor ) ) ) .’</a></li>‘;
    } else {
    echo ‘<li>  » ‘. strip_tags( apply_filters( ‘single_post_title’, get_the_title( $ancestor ) ) ) .’</li>‘;
    }
    }
    }
    }
    // End the UL
    echo « </ul>« ;
    }
    }
    ?>

    Thème enfant




    __( ‘Primary Navigation’, ‘Sleek Black’ ),
    ) );
    }
    // ********************************* CALLING PG *********************************
    function sleekblack_pagination($pages =  », $range = 4){
    $showitems = ($range * 2)+1;
    global $paged;
    if(empty($paged)) $paged = 1;
    if($pages ==  »)
    {global $wp_query;
    $pages = $wp_query->max_num_pages;
    if(!$pages)
    {$pages = 1;
    }
    }
    if(1 != $pages)
    {
    echo « <span>Page « .$paged. » of « .$pages. »</span>« ;
    if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>« First</a>« ;
    if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>‹ Previous</a>« ;
    for ($i=1; $i = $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
    {
    echo ($paged == $i)? "<span class="current">« .$i. »</span>« : »<a href='".get_pagenum_link($i)."' class="inactive">« .$i. »</a>« ;
    }
    }
    if ($paged < $pages && $showitems < $pages) echo "<a>Next ›</a>« ;
    if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>Last »</a>« ;
    echo « n »;
    }
    }
    // ********************************* CALLING WG *********************************
    register_sidebar(array(
    ‘id’ => ‘box-left’,
    ‘name’ => ‘Slider_home’,
    ‘description’ => ‘Emplacement du slider de la page d accueil avec aussi la citation en-dessous.’,
    ‘before_widget’ => ‘<div class="boxWrapper"><div class="boxHeader"></div>‘,
    ‘after_widget’ => ‘</div><div class="boxFooter"></div></div>‘,
    ‘before_title’ => ‘<h3>‘,
    ‘after_title’ => ‘</h3><div class="box">‘,
    ));
    register_sidebar(array(
    ‘id’ => ‘box_footer_liens’,
    ‘name’ => ‘Liens dans pied de page’,
    ‘description’ => ‘Les liens des pages qui composent le site – ces liens sont directement insérés en lignes de code. N ajoutez aucun widget ici.’,
    ‘before_widget’ => ‘<div class="footer_liens"><div class="footer_liens_header"></div>‘,
    ‘after_widget’ => ‘</div><div class="footer_liens_footer"></div></div>‘,
    ‘before_title’ => ‘<h3>‘,
    ‘after_title’ => ‘</h3>‘,
    ));
    register_sidebar(array(
    ‘id’ => ‘box_footer_mentions’,
    ‘name’ => ‘Mentions legales dans pied de page’,
    ‘description’ => ‘Les mentions légales du site.’,
    ‘before_widget’ => ‘<div class="footer_mentions"><div class="footer_mentions_header"></div>‘,
    ‘after_widget’ => ‘</div><div class="footer_mentions_footer"></div></div>‘,
    ‘before_title’ => ‘<h2>‘,
    ‘after_title’ => ‘</h2>‘,
    ));
    ?>
    comment_type ) :
    case  » :
    ?>
    <li id= »li-comment-« >
    <div class="comments" id="comment-« >
    <div class="commentsData user_id) $oddcomment = « authcomment »; echo $oddcomment; ?> »>
    <div class="gravatar"></a></div>
    <div class="author">
    <div class="authorName"></div>
    <div class="authordate"><a href="comment_ID ) ); ?> »></a> </div>
    </div>
    <div class="clear"></div>
    </div>
    <div class="commentBody">
    comment_approved == ‘0’ ) : ?>
    <em>Your comment is awaiting moderation.</em>
    <br />

    </div>
    <div class="commentReply"> $depth, ‘max_depth’ => $args[‘max_depth’] ) ) ); ?></div>
    <div class="clear"></div>
    </div>

    <li class="post pingback">
    <p>Pingback: </p>
    <?php
    break;
    endswitch;
    }
    endif;
    // ********************************* CALLING BC *********************************
    function sleekblack_get_breadcrumbs()
    {
    global $wp_query;
    if ( !is_home() ){
    // Start the UL
    echo '<ul>‘;
    // Add the Home link
    echo ‘<li><a href="'. home_url() .'">‘. get_bloginfo(‘name’) .’</a></li>‘;
    if ( is_category() )
    {
    $catTitle = single_cat_title( «  », false );
    $cat = get_cat_ID( $catTitle );
    echo « <li>   » « . get_category_parents( $cat, TRUE,  » »  » ) . »</li>« ;
    }
    elseif ( is_archive() && !is_category() )
    {
    echo « <li> » Archives</li>« ;
    }
    elseif ( is_attachment() ) {
    echo « <li> » Media Attachment</li>« ;
    }
    elseif ( is_search() ) {
    echo « <li>   » Search Results</li>« ;
    }
    elseif ( is_404() )
    {
    echo « <li>   » 404 Not Found</li>« ;
    }
    elseif ( is_single() )
    {
    $category = get_the_category();
    $category_id = get_cat_ID( $category[0]->cat_name );
    echo ‘<li>   » ‘. get_category_parents( $category_id, TRUE, « </li><li>   »  » );
    echo the_title( », », FALSE) . »</li>« ;
    }
    elseif ( is_page() )
    {
    $post = $wp_query->get_queried_object();
    if ( $post->post_parent == 0 ){
    echo « <li>  » « .the_title( », », FALSE). »</li>« ;
    } else {
    $title = the_title( », », FALSE);
    $ancestors = array_reverse( get_post_ancestors( $post->ID ) );
    array_push($ancestors, $post->ID);

    foreach ( $ancestors as $ancestor ){
    if( $ancestor != end($ancestors) ){
    echo ‘<li>  » <a href="'. get_permalink($ancestor) .'">‘. strip_tags( apply_filters( ‘single_post_title’, get_the_title( $ancestor ) ) ) .’</a></li>‘;
    } else {
    echo ‘<li>  » ‘. strip_tags( apply_filters( ‘single_post_title’, get_the_title( $ancestor ) ) ) .’</li>‘;
    }
    }
    }
    }
    // End the UL
    echo « </ul>« ;
    }
    }
    ?>

    #873911
    Guy
    Participant
    Maître WordPress
    14817 contributions

    A voir vite fait, ils sont identiques non?

    Si les fonctions existent déjà dans le thème parent, pourquoi les remettre une deuxième fois!!!

    Cela ne pouvait pas fonctionner avant, impossible avec ces fichiers, c’était forcément différent ou tu n’avais tout simplement pas activé le thème enfant.

    En l’état, si ils sont identiques, il te suffit de supprimer le fichier functions.php du thème enfant.

    #873912
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    Merci, je testerai la suppression du fichier function du child theme dans la journée ^^

    #873913
    Dreadpoule
    Participant
    Padawan WordPress
    56 contributions

    La suppression du fichier functions a marché. Maintenant j’ai encore un autre soucis :-/ En important la base de données de mon backup dans phpMyAdmin, je vois bien que les tables sont bien en places mais aucun de mes anciens articles n’apparaissent sur le site, ni même les posts… tout est à l’état initial…
    De plus quand je veux me contacter au panneau d’admin, le serveur cherche à me renvoyer sur le fichier install.php même quand je le mets en fichier caché… Firefox me dit qu’il s’agit peut-être d’un problème de cookies refusés mais je ne désactive jamais les cookies. J’ai effacé tous les cookies liés à ce site mais ça ne change rien. Et Chrome me renvoie aussi au fichier install.php…

    Une idée ? :-/

15 sujets de 1 à 15 (sur un total de 15)
  • Vous devez être connecté pour répondre à ce sujet.