Filter the_category hinzufügen

  • Hallo,
    Ich habe vor, den Aufruf [FONT=Courier New]the_category(', ')[/FONT] in der index.php etwas zu verändern. Die Aufzählung soll bestimmte Kategorien nicht enthalten - ich meine damit nicht, den Post zu unterdrücken, der in einer bestimmten Kategorie liegt.

    Bsp zur Verdeutlichung: Post1 ist in Kat1 und Kat2 veröffentlicht.
    Rufe ich [FONT=Courier New]the_category(', ')[/FONT] in index.php auf dann werden 2 Links - durch Komma getrennt - angezeigt, die zu Kat1 und Kat2 führen. Ich möchte aber, dass grundsätzlich der Link Kat2 nicht zu sehen ist.

    Ich weiß, dass es dieses nette Bsp hier gibt: http://codex.wordpress.org/Template_Tags/get_the_category

    aber ich möchte es über [FONT=Courier New]add_filter[/FONT] lösen, denn dafür ist der ja da.
    Dies habe ich auch geschafft - teilweise.

    Hier nun das Problem: die eigentlichen Parameter [FONT=Courier New]$separator[/FONT] und [FONT=Courier New]$parent[/FONT] bekomme ich nicht als Argument der bei [FONT=Courier New]addfilter('the_category',FILTERFUNKTION)[/FONT] mitgeliefert, obwohl sie bei template-functions-category.php mit [FONT=Courier New]return apply_filters('the_category', $thelist, $separator, $parents);[/FONT] weitergegeben werden.
    In der FILTERFUNKTION kommt lediglich [FONT=Courier New]$thelist[/FONT] an - [FONT=Courier New]$separator[/FONT] und [FONT=Courier New]$parents[/FONT] bekomme ich nicht.

    Mach ich was falsch?
    Wie komme ich in meiner Filterfunktion an die Parameter ran?
    Liegt es an der OO?
    Danke für eure Hilfe.

    PS: Hier meine Einbindung im Quelltext:

    PHP
    add_filter('the_category', array(&$this, 'Disable_spec_Cat')); 
    //Disable_spec_Cat ist Methode einer Klasse
     
    function 'Disable_spec_Cat($thelist,$separator = ', ', $parents = '') {
    ...
    }
    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich habe mich da bei meinen Filtern an der Beschreibung hier orientiert:
    http://codex.wordpress.org/Plugin_API#Hook_in_your_Filter

    Der letzte (optionale) Parameter gibt die Anzahl der zu übergebenden Argumente an. Also z.B.:

    PHP
    add_filter( 'the_category', 'Disable_spec_Cat', 10, 3 ); 
    //Disable_spec_Cat ist Methode einer Klasse
     
    function Disable_spec_Cat( $thelist, $separator, $parents ) {
    ...
    }

    Ob das jetzt bei Methoden von Klassen anders ist, weiß ich nicht, denke aber nicht. Mit "normalen" Funktionen klappt es so.

    Gruß
    Ingo

    Wenn ich helfen konnte, bitte [ Gefällt mir ] klicken. :-)

  • Danke für den Tipp...das hat gereicht.

    Ich habe den letzten Parameter bei add_filter ignoriert: accepted_args.

    Jetzt sollte es gehen.

    Danke für den Augenöffner!! :)

    mfg,
    Overload

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!