• Opgelost another-webmaster

    (@another-webmaster)


    Hallo

    Kan iemand mij met het volgende helpen?
    Deze functie geeft een melding die ik niet (ivm te weinig kennis) alleen weet op te lossen.

    function test_001($content) {
    if ( is_single() && in_category( '3' ) ) {
    the_post_thumbnail('thumbnail', array('class' => 'top_post'));
    echo get_the_term_list( $post->ID, 'item1', 'Item1:', ', ', '' );
    echo '<br />';
    return $content;
    }
    }
    add_filter('the_content', 'test_001');

    Het laat de thumbnail zien en ook Item1 maar er is een fout of er ontbreekt een stukje code daar wordpress volgend melding geeft:
    – Notice: Undefined variable: post in
    en
    – Notice: Trying to get property of non-object in
    Het verwijst naar code-line =>echo get_the_term_list …
    Ik weet dat het “maar” notices zijn maar ik zou graag weten hoe dit te voorkomen/op te lossen.

8 reacties aan het bekijken - 1 tot 8 (van in totaal 8)
  • Hallo another-webmaster,

    Zoals de Notice melding aangeeft probeer je een eigenschap (property) van een object te gebruiken: $post is het object en ID is de eigenschap.

    Het $post object is echter niet beschikbaar binnen de functie zolang deze niet is meegegeven met de functie parameters (in dit geval alleen $content) of globaal is.

    De oplossing zal dus zijn $post globaal te maken met:

    global $post;

    In de tesst_001 functie:

    function test_001($content) {
    	if ( is_single() && in_category( '3' ) ) {
    		global $post;
    		the_post_thumbnail('thumbnail', array('class' => 'top_post'));
    		echo get_the_term_list( $post->ID, 'item1', 'Item1:', ', ', '' );
    		echo '<br />';
    		return $content;
    	}
    }
    add_filter('the_content', 'test_001');

    Succes!

    Thread starter another-webmaster

    (@another-webmaster)

    Hallo WeePie

    Mag ik je/u danken. Ik zie dat ik me meer moet verdiepen in de materie om te kunnen begrijpen -wat- ik eigenlijk doe/wil.

    Ik begin het langzamerhand wel meer en meer te snappen, mede de uitleg als hierboven verkregen, waarvoor nogmaals mijn dank!

    Thread starter another-webmaster

    (@another-webmaster)

    Sorry vergat de “solved/opgelost” aan te vinken.

    Geen dank, jep het coderen kost tijd maar oefening en baart kunst!

    Thread starter another-webmaster

    (@another-webmaster)

    Nog een klein probleempje, wanneer de functie actief is dan laadt het de andere postings niet meer 🙁

    Kan ik volgende

    } else {
     return $content;

    ongestraft toevoegen? omdat er dan 2x return #content komt te staan. Geeft dat geen problemen bij zoekopdrachten of anderzijds?

    Je hebt gelijk dat er nog een keer een return moet komen van $content.
    Met de if – else zou je dit inderdaad kunnen oplossen:

    function test_001($content) {
    	if ( is_single() && in_category( '3' ) ) {
    		global $post;
    		the_post_thumbnail('thumbnail', array('class' => 'top_post'));
    		echo get_the_term_list( $post->ID, 'item1', 'Item1:', ', ', '' );
    		echo '<br />';
    		return $content;
    	} else {
    		return $content;
    	}
    }
    add_filter('the_content', 'test_001');

    Uiteraard zijn er meerdere manieren om dit te doen. Het belangrijkste is dat de filter callback (functie) $content altijd returned.

    Thread starter another-webmaster

    (@another-webmaster)

    Is er een elegantere manier? Graag een voorbeeld, ik kan er alleen maar van leren of? Schroom aub niet om jou/uw vakkennis met ons te delen.

    Thread starter another-webmaster

    (@another-webmaster)

    Niet dus, jammer maar in ieder geval bedankt voor deze oplossing.

8 reacties aan het bekijken - 1 tot 8 (van in totaal 8)
  • Het onderwerp ‘Eigen function, werkt maar niet foutloos’ is gesloten voor nieuwe reacties.