Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 748
Hei folkens.

Jeg har en filtrering som ser sånn her ut:
https://ibb.co/0t2F3vZ

All informasjon som filtreres her er informasjon som ligger som meta data i posts i Wordpress.

Noen som har tips til den beste måten å hente data som skrives inn her? Søke i databasen etter metadata og hente ut post ID på postene som har denne informasjonen? Eller query posts ut ifra metadata?

Hvordan kan jeg hente ut alle poster først, for så og hente ut kun de som har metadata etterpå når de trykker på søk?
Første gangen jeg jobber med filtrering, så hadde vært fint om noen har litt tips.

Har googla en del, men det finnes mange forskjellige løsninger på dette, men greit å høre med noen som kan det er om deres synspunkter
Sist endret av Nikon01; 31. mai 2022 kl. 11:12. Grunn: Img fungerte ikke
Jeg tror det beste er å skrive spørringen som henter ut det du vil ha fra databasen.

Du bør se på https://developer.wordpress.org/refe...sses/wp_query/, mange eksempler der som viser hvordan du kan hente ut innhold med diverse verdier.

Et eksempel fra siden:

Kode

$args = array(
    'post_type'  => 'product',
    'meta_query' => array(
        array(
            'key'     => 'color',
            'value'   => 'blue',
            'compare' => 'NOT LIKE',
        ),
        array(
            'key' => 'price',
            'value'   => array( 20, 100 ),
            'type'    => 'numeric',
            'compare' => 'BETWEEN',
        ),
    ),
);
$query = new WP_Query( $args );
Jeg ville bygd opp et WP_Query-objekt basert på aktive filtre på siden.
Trådstarter
Takk for svar Yochi.

Jeg kjører nå f.eks denne for å teste:

Kode

$args = array(
     'post_type'          => 'post',
     'post_status'        => 'publish',
     'cat'                   => $fields['term_id'],
     'posts_per_page'  => 9,
     'paged'               => $paged,
     'meta_query'        => array(
          array(
                'key'         => '***',
                'value'       => 'Fossliberga',
                'compare'   => 'LIKE',
          ),
      ),
);
Når jeg kjører denne så får jeg ikke opp noen ting. Men jeg vet jeg har en value som er "fossliberga" her i meta dataen.
Kjører jeg da "NOT LIKE", så vil jeg få opp alle.

Her er da bilde av meta_value som ligger i databasen.
https://ibb.co/4j9KPX6
Sist endret av Nikon01; 31. mai 2022 kl. 14:28.
Siden du søker på del av en streng kan det hende du må bruke "REGEXP" og skrive en regex med wildcards. Tipper det er greit å finne artikler om WP_Query om du søker litt da det er en veldig stor del av Wordpress.
Sitat av Nikon01 Vis innlegg
Når jeg kjører denne så får jeg ikke opp noen ting. Men jeg vet jeg har en value som er "fossliberga" her i meta dataen.
Kjører jeg da "NOT LIKE", så vil jeg få opp alle.

Her er da bilde av meta_value som ligger i databasen.
https://ibb.co/4j9KPX6
Vis hele sitatet...
Sjekk hvis du bruker riktig meta_key. Du kan bruke get_post_meta funksjon for å vise alle nøkler først.