現在、クライアントのワードプレス サイトでカスタム作業を行っています。以下のコードを使用して、正常に動作するデータベースにクエリを実行しています。ただし、結果を表示しようとすると、正常に機能しません。基本的に、postmeta テーブルにクエリを実行して、追加したカスタム フィールドから情報を見つけようとしています。この場合は私の名前、andy です。システムがカスタム フィールドの値が andy であるすべての投稿を見つけると、それらの行の ID を使用して、それぞれのタイトル、コンテンツ、および日付を表示する必要があります。これは、ページをライブで表示するまでは正常に機能していましたが、基本的には自分の名前が表示される回数をカウントし、すべての行から情報をエコーしますが、公開されている行からのみ情報をエコーしたい. 誰でも助けてくれますか、私にとっては大きな頭痛の種です!:
PHP
<?php
require_once('dbConfig.php');
// This variable grabs the name in the URL
$r = get_permalink();
$r = explode('/', $r);
$r = array_filter($r);
$r = array_merge($r, array()); //reset keys
$code = $r[3];
$getName = preg_replace("/[^a-zA-Z0-9\s]/", "", $code);
$name = $db->real_escape_string($getName);
?>
<?php
$allposts = $wpdb->get_results( $wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_value = %s", $name) );
foreach ($allposts as $singlepost) {
$wpPosts = $wpdb->get_row( $wpdb->prepare("SELECT post_title, post_content, post_date_gmt FROM $wpdb->posts WHERE ID = %d AND post_status = 'publish' AND post_type='post' ORDER BY ID DESC", $singlepost->post_id) );
$wpPostsDate = new DateTime($wpPosts->post_date_gmt);
echo '<h1>'.$wpPosts->post_title.'</h1><br>';
echo 'Post Content: '.$wpPosts->post_content.'<br>';
echo 'Post Date: '.$wpPostsDate->format('jS F Y').'<br><br>';
}
?>