Strenge Standards: In wordpress/wp-includes/class-oembed.php in Zeile 116 sollten nur Variablen per Referenz übergeben werden

Lesezeit: 3 Minuten

Strenge Standards In wordpresswp includesclass oembedphp in Zeile 116 sollten nur Variablen
bigmadwolf

Ich habe mir viele ähnliche Fragen angesehen und bekomme sie in Bezug auf meinen Code nicht.

Der Fehler :

Strict Standards: Only variables should be passed by reference in wordpress/wp-includes/class-oembed.php on line 116

und hier mein code….

// Get Ready Display the Audio
$embedCheck     = array("<embed", "<ifram");// only checking against the first 6
$mykey_values   = get_post_custom_values('_format_audio_embed');
$content_oembed = '';

// check if the audio metabox is used
if ( isset($mykey_values) && !empty($mykey_values) ) {
    // iterate over values passed
    foreach ( $mykey_values as $key => $value ) {
         $url = $value;
         $wtf = wp_oembed_get($url);
         if ( !empty($url) ) {
            $firstCar = substr($url, 0, 6); // get the first 6 char.

            // if its a http(s).
            if ( strpos($firstCar, "http:/" ) !== false || strpos($firstCar, "https:" ) !== false ) {
                // send it to wp_oembed to see if the link is oembed enabled.


                    $content_oembed = ($wtf !==false)
                  ? ('"<div class="audio" style="width:100%; overflow:hidden;">' .$wtf.'</div>')
                  : ('<audio src="'.$url.'" preload="none" type="audio/mpeg"></audio>');
            }

            // if its the embed code that matches our array defined above.
            else if ( audio_strpos_arr($firstCar, $embedCheck ) !== false ) {
                $content_oembed = '<div class="video" style="width:100%; overflow:hidden;">' .$url. '</div>';

            }
        }
    }; // end foreach
} // end conditional

Wenn ich den Abschnitt in der Bedingung unter dem Kommentar “send it to wp_oembed to see if the link is oembed enabled.” entferne, aber noch seltsamer, wenn ich ihm einen Soundcloud-Link übergebe – kein Fehler, aber wenn es sich um eine lokal gehostete Datei handelt, geht es Titten auf.

Jede Hilfe wäre sehr willkommen.

nach ein bisschen Fummelei – scheint das Problem mit dieser Funktion zusammenzuhängen http://codex.wordpress.org/Function_Reference/wp_oembed_get

und worauf sich das in der eingeschlossenen class-oembed.php bezieht, sagt Folgendes in Zeile 116

112         function discover( $url ) {
113                 $providers = array();
114 
115                 // Fetch URL content
116                 if ( $html = wp_remote_retrieve_body( wp_safe_remote_get( $url ) ) ) {

  • Wenn Sie Code zeigen und uns eine Zeilennummer mitteilen, tun Sie uns bitte den Gefallen, dies im Code zu markieren. Nur ein Kommentar sagen // This is line 116 oder so.

    – Sverri M. Olsen

    4. August 13 um 8:50 Uhr


  • Hey Swerri – entschuldige die Verwirrung – die Zeilennummer befindet sich in einer in WordPress enthaltenen Datei namens class-oembed.php – aber der Fehler wird durch etwas verursacht, das ich hier speziell um diese Funktion wp_oembed_get mache

    – Großer Wahnsinniger

    4. August 13 um 9:08 Uhr

  • mögliches Duplikat von Strict Standards: Nur Variablen sollten als Referenz übergeben werden

    – Lorenz Meyer

    21. Juni 14 um 08:34 Uhr

Sie sollten keine Zuweisungen verwenden (=) in Ihrem ternären Ausdruck, da Sie Probleme mit dem Vorrang von Operatoren bekommen.

Du könntest es schreiben wie:

$content_oembed = (wp_oembed_get($url) !==false)
                  ? ('<div class="audio" style="width:100%; overflow:hidden;">' . wp_oembed_get($url).'</div>')
                  : ('<audio src="'.$url.'" preload="none" type="audio/mpeg"></audio>');

  • Toller Tipp – danke, glauben Sie, dass das der Fehler ist, oder ist dies nur ein allgemeiner Tipp für die Arbeit mit ternären Operatoren?

    – Großer Wahnsinniger

    4. August 13 um 8:53 Uhr

  • @pushplaybang Es könnte sehr gut deinen Fehler verursachen, aber was genau ist Zeile 116?

    – jeroen

    4. August 13 um 8:55 Uhr

  • das ist Zeile 116 in der WordPress-Include-Klasse-oembed.php. Die Funktion wp_oembed_get(), die ich verwende, um zu sehen, ob WordPress die Linkverweise dort etwas einbetten kann – ich habe nachgesehen, ergibt für mich keinen Sinn, auch der Fehler bleibt nicht bestehen, wenn ich diese paar Zeilen entferne

    – Großer Wahnsinniger

    4. August 13 um 8:59 Uhr

  • @pushplaybang Hast du immer noch einen Fehler mit dem geänderten Code, den ich gepostet habe?

    – jeroen

    4. August 13 um 9:01 Uhr

Im Moment vermeide ich die Verwendung von wp_oembed_get insgesamt, indem ich meine Bedingungen vertausche und wenn es kein iframe ist oder das Folgende verwendet wird, was automatisch zu bestimmen scheint, ob es sich um einen lokal gehosteten oder einen oembed-Link handelt ….

global $wp_embed;
$post_embed = $wp_embed->run_shortcode(''.$url.'');

und dann $post_embed echoen

.

758660cookie-checkStrenge Standards: In wordpress/wp-includes/class-oembed.php in Zeile 116 sollten nur Variablen per Referenz übergeben werden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy