WP_Query mysteriöses Problem

  • Moin zusammen,

    ich stehe kurz vorm Nervenzusammenbruch und brauche einmal euren Rat.

    Es geht um Folgendes:

    Ich habe einen WP_Query Aufruf:

    PHP
    $search = $_SESSION["search"]; // z.B. Kühe
    
    
    
    
    $meta_query = array(							        	  array(	'key' => 'customposttypes-namen',	'value' => $search,        'compare' => 'LIKE'  )
    );
    $type = 'customposttypes';
    $args = array(			'post_type' 		=> $type,			'post_status' 	        => 'publish',			'posts_per_page'        => -1,			'caller_get_posts'	=> 1,			'paged'                      => $paged,			'meta_query' 		=> $meta_query									  			 );
    $wp_query = new WP_Query($args);

    Jetzt soll das System eigentlich alle Posts ausgeben Tabelle "postmeta" | "meta_key" > "customposttypes-namen" | value > "Kühe" also als Wildcardsuche (LIKE)

    Als Result erhalte ich genau nix. Jetzt das mysteriöse an der Sache:

    Schreibe ich statt "$search" > direkt "Kühe" findet er alles.

    Ich habe die Variable mehrfach ausgegeben und überprüft alles stimmt. Ich habe sogar den Typ mit is_string überprüft.
    Alles korrekt und vollständig. Aber Result gibt es nur bei manueller Eintragung des Suchbegriffs im Quelltext.

    Dieser Fehler bezieht sich ausschließlich auf "Umlaute / Sonderzeichen" alles andere wird richtig gefunden.

    Hat jemand eine Idee? Ich bin echt Ratlos!

    Vielen Dank für eure Hilfe!
    LG David

    • 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 einen WP_Query Aufruf:

    PHP
    $search = $_SESSION["search"]; // z.B. Kühe

    Schreibe ich statt "$search" > direkt "Kühe" findet er alles.

    dann ist vermutlich $search "leer" oder enthält nicht "Kühe" wie auch, WordPress kennt keine $_SESSION. Wenn du $_SESSION verwenden möchtest, musst du WordPress erweitern.

    http://php.net/manual/de/book.session.php


    mind. ein session_start(); fehlt


    PHP
    session_start();
    $search = $_SESSION["search"]; // z.B. Kühe

    und so baust du dir gleich eine Sicherheitslücke in dein System.

    Wie unterscheide ich böse Variablen von guten?
    http://www.php-faq.de/q/q-security-variablen.html

    Mit offenen Augen träumen

Jetzt mitmachen!

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