it-swarm.com.de

Warum verursacht meine functions.php Probleme mit dem White-Screen und der Medienbibliothek?

Übersicht:

Ich habe ein untergeordnetes Thema verfasst und festgestellt, dass functions.php Probleme mit der Medienbibliothek verursacht und nach dem Bearbeiten eines Beitrags ein "weißer Bildschirm" angezeigt wird. Ich habe das Problem behoben, indem ich alle Inhalte aus meiner functions.php entfernt habe, aber ich weiß nicht, was das verursacht hat.


Info:

Produktionsserver: Multi-Site, Wordpress 3.8.1 Lokaler Entwicklungsserver (aka "localhost"): Wordpress 3.8.1 mit AMPPS v2.2 (php v5.3) in Windows 7 Pro SP1.


Das Media-Library-Problem:

  • Beim Auftauchen -> Kopfzeile -> 'Bild auswählen' -> 'Bild aus der Medienbibliothek auswählen'
  • UND Beim Aufrufen von Beiträgen -> 'Alle Beiträge' -> 'Beitrag bearbeiten' -> 'Set-Feature-Bild'
  • In der Medienbibliothek wurde kein Inhalt angezeigt, als ob meine Bibliothek leer wäre. Dies geschieht trotz des Wechsels zu Dashboard -> Medien -> Bibliothek und der Überprüfung, ob Medieninhalte vorhanden sind.
  • Wenn ich versuche, eine Mediendatei hochzuladen (auf die oben genannten Arten), erhalte ich immer die Fehlermeldung "Beim Hochladen ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut."

Das White-Screen-Problem:

  • Beim Aufrufen von Beiträgen -> Alle Beiträge -> Beitrag bearbeiten -> Aktualisieren wird beim Klicken auf die Schaltfläche zum Aktualisieren/Erstellen eines Beitrags ein weißer Bildschirm angezeigt.
  • Die Verwendung von CNTRL+s zum Speichern des Beitrags aus dem wysiwyg heraus verursachte keinen weißen Bildschirm.

functions.php

So sah functions.php aus, bevor ich das Problem durch Entfernen des gesamten Inhalts behoben habe (es stellte sich heraus, dass ich die darin enthaltenen Funktionen sowieso nicht mehr benötigte). Auch auf 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'); */

Aktive Plugins:

Dies waren die aktiven Plugins während des Tests.

Produktion: Erweiterte benutzerdefinierte Felder Version 4.3.5 ( http://www.advancedcustomfields.com/ ), Benutzerdefinierter Beitragstyp UI Version 0.8.2 ( http://webdevstudios.com/plugin/custom-post-type-ui/ ), Ereignisse Manager Version 5.5.2 ( http://wp-events-plugin.com/ ), WP Super Cache Version 1.4 ( http://wordpress.org/plugins/wp-super-cache/ )

Localhost Active Plugins: Erweiterte benutzerdefinierte Felder Version 4.3.4 ( http://www.advancedcustomfields.com/ ), Benutzeroberfläche für benutzerdefinierten Beitragstyp, Version 0.8.2 ( http://webdevstudios.com/plugin/custom-post-type-ui/ )


Lösungsversuche: Ich habe zwei Fälle ausprobiert und die Ergebnisse aufgezeichnet, um die Ursache zu verstehen.

Fall 1.

entfernen von HTML-Kommentar oben auf functions.php

Localhost: "White-Screen-Problem" fehlt. "Medienbibliothek Problem", abwesend.

Produktion: "Problem mit dem weißen Bildschirm" und "Problem mit der Medienbibliothek" sind vorhanden.

Fall 2.

hTML-Kommentar über functions.php behalten, aber Funktion cals_feed_fetch2 entfernen

Localhost: "Problem mit dem weißen Bildschirm" fehlt. "Problem mit der Mediendatei" vorhanden.

Produktion: "White-Screen-Problem" liegt vor. Mediendatei-Problem liegt vor


Fazit:


Obwohl ich anscheinend die Probleme behoben habe, indem ich den gesamten Inhalt in functions.php entfernt habe, weiß ich nicht, welcher Teil (welche Teile) meiner ursprünglichen functions.php diese Probleme verursacht hat.

1
Daniel Dropik

Die erste Zeile ist nur ein HTML-Kommentar, der nicht in PHP enthalten ist. Es wird mit jeder Antwort ausgegeben und erzeugt alle Arten von Kopfschmerzen, die Sie erleben.

Lösung? Entfernen Sie es oder machen Sie es zu einem PHP Kommentar:

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

Sie sollten auch sicherstellen, dass auf beiden Seiten von PHP -Tags kein Leerzeichen steht, wie hier beschrieben .

1
TheDeadMedic