0

現在、クライアントのワードプレス サイトでカスタム作業を行っています。以下のコードを使用して、正常に動作するデータベースにクエリを実行しています。ただし、結果を表示しようとすると、正常に機能しません。基本的に、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>';
        }
        ?>
4

2 に答える 2