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!