Holen Sie post_meta von Kindern und vergleichen Sie mit der aktuellen Seiten-ID

Ich bin auf ein wenig PHP-Code in meiner Vorlage ratlos.

Ich habe ein benutzerdefiniertes Feld namens “Dienste” mit einem Wert wie “2402, 2366, 78” Dies sind Seiten-IDs.

In meiner Vorlage möchte ich Folgendes tun: Rufen Sie alle untergeordneten Elemente der Seiten-ID 2526 ab. Dann ermitteln Sie den Wert dieses benutzerdefinierten Felds für jedes der untergeordneten Elemente. Ermitteln Sie dann die ID der aktuellen Seite, für die die Vorlage verwendet wird (get_the_ID ()). Erstellen Sie dann eine IF-statement. Wenn eine Zahl im Wert mit der Nummer der Seiten-ID übereinstimmt, wiederholen Sie etwas und übertragen Sie den gecharten Text mit einer Verknüpfung zurück zur untergeordneten Seite von ID 2526, deren benutzerdefiniertes Feld einen Wert hat, der der aktuellen Seiten-ID entspricht.

Ich kann auch die Werte als 2402 2366 78 eingeben, wenn es ohne Kommas einfacher ist.

Dies ist, wo ich so weit bin:

get_results("SELECT * FROM $wpdb->posts WHERE post_parent = 2526 AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild ); $services = get_post_meta( $pageChild->ID, 'services', true ); if (preg_match('/(^|,)'.$currentPageID.'($|,)/', $services)){ echo "matches"; } else { echo "does not match"; } endforeach; endif; ?> 

Ich bekomme keine Fehler, aber auch nichts. Ich bin auch nicht sicher, wie man den Link für die verwandte Kindseite hinzufügt.

Danke für jede Hilfe im Voraus!

Solutions Collecting From Web of "Holen Sie post_meta von Kindern und vergleichen Sie mit der aktuellen Seiten-ID"

Hier ist der Code, der für mich funktioniert hat:

 < ?php $mypages = get_pages( array( 'child_of' => $post->ID, 'sort_column' => 'menu_order', 'sort_order' => 'asc' ) ); foreach( $mypages as $page ) { $content = $page->post_content; $content = apply_filters( 'the_content', $content ); $price = get_post_meta( $page->ID, 'price', true ); ?> 

< ?php echo $page->post_title; ?>

< ?php echo $price; ?>

< ?php echo $content; ?>

< ?php $currentPageID = $page->ID; $child_pages = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_parent =2526 AND post_type = 'page' ORDER BY menu_order", 'OBJECT'); if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata( $pageChild ); $services = get_post_meta( $pageChild->ID, 'services', true ); if (preg_match('/(^|,| )'.$currentPageID.'($|,| )/', $services, $matches)){ echo "A promotion is available for this service
" ; // echo "matches"; } endforeach; endif; ?>