web-dev-qa-db-fra.com

Pourquoi mon functions.php pose-t-il des problèmes d'écran blanc et de médiathèque?

Vue d'ensemble:

Je créais un thème enfant et me suis rendu compte que functions.php posait des problèmes avec la médiathèque et provoquait l'apparition d'un "écran blanc" après la modification d'un article. J'ai résolu le problème en supprimant tout le contenu de mon functions.php, mais je ne sais pas ce qui le causait.


Info:

Serveur de production: multi-site, Wordpress 3.8.1 serveur de développement local (ou "hôte local"): Wordpress 3.8.1 avec AMPPS v2.2 (php v5.3) dans Windows 7 Pro SP1.


Le problème de la médiathèque:

  • En allant en apparence -> En-tête -> 'Choisir une image' -> 'Choisir une image de votre bibliothèque multimédia'
  • ET En allant aux articles -> 'tous les articles' -> 'éditer article' -> 'image sélectionnée'
  • La médiathèque n'affichait aucun contenu, comme si ma bibliothèque était vide. Ceci en dépit d'aller au tableau de bord -> média -> bibliothèque, et de vérifier qu'il existe un contenu multimédia.
  • En outre, lors de la tentative de téléchargement d'un fichier multimédia (en utilisant les méthodes ci-dessus), je recevais toujours une erreur "une erreur s'est produite lors du téléchargement. Veuillez réessayer plus tard".

Le problème de l'écran blanc:

  • Lors du passage aux articles -> tous les articles -> éditer un article -> mettre à jour, un écran blanc apparaît lorsque vous cliquez sur le bouton pour mettre à jour/créer un article.
  • L'utilisation de CNTRL+s pour enregistrer le message à partir du fichier wysiwyg n'a pas provoqué l'affichage d'un écran blanc.

functions.php

Voici à quoi ressemblait functions.php avant de résoudre le problème en supprimant tout le contenu (il s’avère que je n’avais plus besoin des fonctions qu’il contient). Également sur http://Pastebin.com/KS66yfqK

<!-- In a child theme, all of the functions of the parent theme are present, unless   overridden here -->
<?php

function cals_fetch_feed2($feed_uri,$num_items, $echo = 1, $length =-1, $exclude=''){
//NOTE: to disable cache, go to feed.php and replace timestamp in 
// $feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 43200, $url)); 
$i = Rand(1,5);
// Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/feed.php');

// Get a SimplePie feed object from the specified feed source.
$rss = fetch_feed($feed_uri);

if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly 

    //enable order by date
    $rss->enable_order_by_date(true);

    // Figure out how many total items there are, but limit it to $num_items. 
    $maxitems = $rss->get_item_quantity($num_items); 

    // Build an array of all the items, starting with element 0 (first element).
    $rss_items = $rss->get_items(0, $maxitems); 
endif;

if($echo == 1){

    if (count($rss_items) == 0) {
        //echo '<li>No items.</li>';
        echo 'no items';
    } else {
        foreach ( $rss_items as $item ) { 

            //check for excluded posts
            if($exclude!='' && $exclude == $item->get_id()){
                continue;
            }


            $featuredImageSrc = $item->get_item_tags('', 'featuredimage'); 


            $featuredImage = $featuredImageSrc[0]['data'];



            ?>

            <?php  
            /*if($featuredImage) {*/

                echo '<div class="newsItem fromFunctionsPHP ';
                if(!$featuredImage) {echo 'noImage ';}




                foreach ($item->get_categories() as $category)
                    {
                        echo $category->get_label()." ";


                        /*$imageCat = $category->get_label();

                    if($imageCat == "Agriculture" || $imageCat == "Food" || $imageCat == "Environment" || $imageCat == "Energy" || $imageCat == "Health" || $imageCat == "People" || $imageCat == "Communities" || $imageCat == "Events") {

                        break;

                    } else {


                        echo "Announcements ";
                        break;
                    }*/

                    }

                echo '"><div class="previousa"><div class="additionalContent">';

                $notdisplayed = true;

            if($featuredImage1) {
                echo '<img src="'.$featuredImage1.'" alt="" />';
            } else if($featuredImage) {
                echo '<img src="'.$featuredImage.'" alt="" />';
            } else {
                echo '<div class="noImageSpacer"></div>';
                /*foreach ($item->get_categories() as $category)
                {
                    $imageCat = $category->get_label();

                    if($imageCat == "Agriculture") {

                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/agriculture-pic-';
                        echo Rand(1,3);
                        echo '.jpg" alt=" " />';
                        break;
                    } else if($imageCat == "Food") {

                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/food-pic-';
                        echo Rand(1,3);
                        echo '.jpg" alt=" " />';
                        break;
                    } else if($imageCat == "Environment") {

                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/environment-pic-';
                        echo Rand(1,3);
                        echo '.jpg" alt=" " />';
                        break;
                    } else if($imageCat == "Energy") {

                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/energy-pic-';
                        echo Rand(1,3);
                        echo '.jpg" alt=" " />';
                        break;
                    } else if($imageCat == "Health") {

                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/health-pic-';
                        echo Rand(1,3);
                        echo '.jpg" alt=" " />';
                        break;
                    } else if ($imageCat == "People" || $imageCat == "Communities") {

                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/people-pic-';
                        echo Rand(1,3);
                        echo '.jpg" alt=" " />';
                        break;
                    } else if ($imageCat == "Events") {

                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/Twitter-bg-';
                        echo Rand(1,3);
                        echo '.jpg" alt=" " />';
                        break;
                    } else {


                        echo '<img src="';
                        echo bloginfo('template_url');
                        echo '/images/generalcals-bg-';
                        echo $i;
                        echo '.jpg" alt=" " />';
                        if($i < 5) {
                            $i = $i + 1;
                        } else {
                            $i = 1;
                        }
                        break;
                    }



                }*/


            }
            echo '</div>';

                echo '<div class="text"><div class="glyph"><div class="symbol"></div></div><div class="titleheading"><h3>';
                $title = $item->get_title();
                if($length != -1){
                    if(strlen($title)>$length){ 
                        echo substr($title,0,$length).'...'; } 
                    else { 
                        echo $title; 
                    }
                } else { 
                    echo $title; 
                }
            echo '</h3></div><div class="excerpt">';
            $content = $item->get_description(); 
            echo $content;
            echo '</div><div class="dateheading">';
            echo $item->get_date('F j, Y');
            echo '</div><div class="hiddendate">';
            echo "-".$item->get_date('Ymd');
            echo '</div><div class="hiddengroup">';
            $cattemp = $item->get_category();
            echo $cattemp->get_label();
            echo '</div><span class="number">10</span></div>';





        echo '<a href="';
        echo $item->get_permalink();
        echo '" class="highlight" title="';
        echo 'Posted '.$item->get_date('j F Y | g:i a');
        echo '">Read more about ';
        echo $item->get_title();
        echo '<div class="loadingSpinner"><div class="progress"></div></div></a></div></div>';


        /*}  else {

            //What to display if no image is supplied by the article

            echo '<div class="newsItem noImage ';
                foreach ($item->get_categories() as $category)
                    {
                        echo $category->get_label()." ";
                    }

                echo '"><div class="previousa"><div class="titleheading"><h3>';
                $title = $item->get_title();
                if($length != -1){
                    if(strlen($title)>$length){ 
                        echo substr($title,0,$length).'...'; } 
                    else { 
                        echo $title; 
                    }
                } else { 
                    echo $title; 
                }
            echo '</h3></div><div class="text"><div class="glyph"><div class="symbol"></div></div><div class="excerpt">';
            $content = $item->get_description(); 
            echo $content;
            echo '</div><div class="dateheading">';
            echo $item->get_date('F j, Y');
            echo '</div><div class="hiddendate">';
            echo "-".$item->get_date('Ymd');
            echo '</div><div class="hiddengroup">';
            $cattemp = $item->get_category();
            echo $cattemp->get_label();
            echo '</div><span class="number">10</span></div><div class="additionalContent">';









        echo '</div><a href="';
        echo $item->get_permalink();
        echo '" class="highlight" title="';
        echo 'Posted '.$item->get_date('j F Y | g:i a');
        echo '">Read more about ';
        echo $item->get_title();
        echo '<div class="loadingSpinner"><div class="progress"></div></div></a></div></div>';


        }*/
         ?>




        <?php }
    }

} else {

    return $rss_items;

}
}

/*function soilsextension_enqueue_scripts(){
 $handle = 'soilsextension_scripts';
 $src = get_theme_root_uri() . '/soilsextension/js/min/master.min.js';

wp_register_script($handle, $src, false, false, true);

wp_enqueue_script('soilsextension_scripts');
}

add_action('wp_enqueue_scripts', 'soilsextension_enqueue_scripts'); */

Plugins actifs:

C'étaient les plugins actifs pendant le temps que je testais.

Production: Champs personnalisés avancés, version 4.3.5 ( http://www.advancedcustomfields.com/ ), Type d’interface utilisateur personnalisée version 0.8.2 ( http://webdevstudios.com/plugin/custom-post-type-ui/ ), événements Manager Version 5.5.2 ( http://wp-events-plugin.com/ ), WP Super Cache version 1.4 ( http://wordpress.org/plugins/wp-super-cache/ )

Plugins Localhost Active: Champs personnalisés avancés, version 4.3.4 ( http://www.advancedcustomfields.com/ ), type de message personnalisé UI version 0.8.2 ( http://webdevstudios.com/plugin/custom-post-type-ui/ )


Solutions tentées: J'ai tenté deux cas et enregistré les résultats, dans le but de comprendre la cause.

Cas 1.

enlever le commentaire html au dessus de functions.php

Localhost: "problème d'écran blanc" est absent. "problème de médiathèque", absent.

Production: "Problème d'écran blanc" et "problème de bibliothèque multimédia tous deux présents.

Cas 2.

garder le commentaire HTML au-dessus de functions.php mais enlever la fonction cals_feed_fetch2

Localhost: "problème d'écran blanc" est absent. "Problème de fichier multimédia" présent.

Production: "problème d'écran blanc" est présent. problème de fichier multimédia est présent


Conclusion:


Bien que je semble avoir résolu les problèmes en supprimant tout le contenu du fichier functions.php, je ne sais pas quelle (s) partie (s) de mon fichier functions.php d'origine a provoqué ces problèmes.

1
Daniel Dropik

La première ligne est juste un commentaire HTML en dehors du champ de PHP. Il en sortira avec chaque réponse et créera tous les types de maux de tête que vous rencontrez.

Solution? Supprimez-le ou faites-en un commentaire PHP:

<?php    
/* In a child theme, all of the functions of the parent theme are present, unless   overridden here */

Vous devez également vous assurer qu'il n'y a pas d'espace entre les balises PHP, comme décrit ici .

1
TheDeadMedic