Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在wordPress中返回帖子和相关元数据的方法_Php_Arrays_Wordpress - Fatal编程技术网

Php 在wordPress中返回帖子和相关元数据的方法

Php 在wordPress中返回帖子和相关元数据的方法,php,arrays,wordpress,Php,Arrays,Wordpress,WordPress有一个方法(get_posts())来获取所有帖子信息,但我需要一个函数来从“wp_Posteta”表获取帖子信息及其元数据。 WordPress中有什么函数可以让我得到一个包含帖子和元数据的数组吗? 谢谢 如果您想使用meta获取所有帖子,可以执行以下查询: SELECT * FROM `wp_posts` INNER JOIN `wp_postmeta` on `wp_posts`.`ID` = `wp_postmeta`.`post_id` 然后你可以试试这个: fu

WordPress有一个方法(
get_posts()
)来获取所有帖子信息,但我需要一个函数来从“wp_Posteta”表获取帖子信息及其元数据。 WordPress中有什么函数可以让我得到一个包含帖子和元数据的数组吗? 谢谢

如果您想使用meta获取所有帖子,可以执行以下查询:

SELECT * FROM `wp_posts` INNER JOIN `wp_postmeta` on `wp_posts`.`ID`  = `wp_postmeta`.`post_id`
然后你可以试试这个:

function posts_with_meta(){
    global $wpdb;

    $posts_with_meta = $wpdb->get_results( 
        "SELECT *
        FROM $wpdb->posts INNER JOIN $wpdb->postmeta
        on $wpdb->posts.`ID` = $wpdb->postmeta.`post_id`
        "
    );

    return $posts_with_meta;
}

我可以使用以下代码合并post元数据和post数据:

$args = array(
    'numberposts'   => -1, // -1 is for all
    'post_type'     => 'location', // or 'post', 'page'
    'orderby'       => 'date', // or 'date', 'rand'
    'order'         => 'ASC', // or 'DESC'

    // http://codex.wordpress.org/Template_Tags/get_posts#Usage
);

$posts = get_posts($args);
foreach ($posts as $post) {
    $result = get_post_meta($post->ID);
    $post->postMeta = $result;
}

难道你就不能用foreach和?