PHP hilfe! Tag Abfrage

  • Hallo!
    Ich kenne mich zuwenig mit php aus - vielleicht kann mir jemand einen Tipp gegeben, was falsch an dem Code ist..
    Ich habe ein template über den elementor pro themebuilder erstellt, wo verschiedene Posttypen (Projekte, Impressionen, Angebote ...) ihre Beiträge zu dem TAG ausspucken, der gerade angefragt wurde.
    (...de/tag/umweltbildung/)
    Ich habe jeder Abfrage im Postwidget eine ID gegeben. Zum Bsp: "limit_projekte" und einen Code in die function.php hinzugefügt, der sieht z.bsp. so aus:

    add_action( 'elementor/query/limit_projekte', function( $query ) {
    $tag_objects = get_the_tags();
    foreach( $tag_objects as $temp_tag) {
    $tag_slugs[] = $temp_tag->slug;
    }
    $query->set( 'tag_slug__in', $tag_slugs );
    $query->set( 'post_type', 'projekte' );
    $query->set( 'post_status', 'publish');
    $query->set( 'order', 'ASC');
    $query->set( 'orderby', 'title' );
    } );

    Das habe ich für verschiedene Posttypen gemacht. Das funktioniert auch.
    Ich habe aber auch Veranstaltungen, die auch dort gefiltert aufgeführt werden sollen. Das Plugin heißt eventOn. (Die Event Tags werden in einer tagwolke mitdazugezählt es sind die gleichen Tags wie in den Posts, das ist also global gesteuert, was schon mal gut ist.)
    Dem shortcode, der die Events anzeigen läßt, habe ich auch die id hinzugefügt. In dem Fall muß es wohl so heissen:

    [add_eventon cal_id="limit_events"]

    Und in die function habe ich dieses eingefügt:

    add_action( 'query/limit_events', function( $query ) {
    $tag_objects = get_the_tags();
    foreach( $tag_objects as $temp_tag) {
    $tag_slugs[] = $temp_tag->slug;
    }
    $query->set( 'tag_slug__in', $tag_slugs );
    $query->set( 'post_type', 'ajde_events' );
    $query->set( 'post_status', 'publish');
    $query->set( 'order', 'ASC');
    $query->set( 'orderby', 'title' );
    } );

    Aber es funktioniert eben nicht. Es beschränkt den Abruf nicht. Hat jemand eine Idee?
    das wäre toll
    grüße!

    • 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

  • Vergleiche mal den Namen der Action

    Code
    add_action( 'elementor/query/limit_projekte', function( $query ) {


    mit

    Code
    add_action( 'query/limit_events', function( $query ) {


    Wird die Action denn überhaupt ausgeführt?

    PS. Code fügt man mit dem [+] Symbol und Code im Forum Editor ein.

Jetzt mitmachen!

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