如何在WordPress/PHP中检索所有帖子的自定义字段类型?

时间:2019-10-30 作者:user5447339

我有一个帖子类型absf-episodes 从URL复制/wp-admin/edit.php?post_type=absf-episodes

我为帖子类型设置的自定义字段absf-episodes 是:

broadview_updated, description_en, description_fr, description_short_en, description_short_fr, episode_id, title_short_en, title_short_fr
我有一个函数,我想在其中提到这些字段,以便我可以反复调用该函数。

function get_down_latest_videos( ) {             


}
职位具有post_type=absf-episodes:

enter image description here

1 个回复
最合适的回答,由SO网友:butlerblog 整理而成

自定义字段另存为“post meta”,存储在wp_postmeta.

要检索它们,请使用get_post_meta() 功能如下:

$value = get_post_meta( $post_id, $meta_key, $single );

$single 如果处理字符串数据,则几乎总是设置为true。不幸的是,它默认为false,因此如果要以字符串形式检索数据,则需要将其指定为true:

$value = get_post_meta( $post_id, $meta_key, true );

您实际上没有提供太多关于数据的信息,但让我们假设它都是字符串数据,并且您希望在函数中检索它。下面是您的函数,用于获取其中的每一项并将其放入一个数组中:

function get_down_latest_videos( $post_id ) {             
     $meta_keys = array( \'broadview_updated\', \'description_en\', \'description_fr\', \'description_short_en\', \'description_short_fr\', \'episode_id\', \'title_short_en\', \'title_short_fr\' );

     foreach ( $meta_keys as $meta_key ) {
          $my_video_data[ $meta_key ] = get_post_meta( $post_id, $meta_key, true );
     }

     return $my_video_data;
}
若要使用它,请将post ID传递给get_down_latest_videos( $post_id ) (其中$post_id 是特定帖子的ID),您将返回一个包含自定义字段值的数组,其中数组由帖子元键设置关键字。

Update:

现在,如果要循环浏览所有“absf剧集”帖子,可以设置如下查询:

$query = new WP_Query(array(
    \'post_type\'      => \'absf-episodes\',
    \'post_status\'    => \'publish\'
    \'posts_per_page\' => -1,  // This gets "ALL" instead of limiting the results
));

while ( $query->have_posts() ) {
    $query->the_post();
    $post_id = get_the_ID();

    // You are now looping through each \'absf-episodes\' by $post_id.
    // This example just spits out the post meta results for each post:
    echo \'<pre>\';
    $post_meta = get_down_latest_videos( $post_id );
    print_r( $post_meta );
    echo \'</pre>\';

}
根据您在何处使用类似的内容,您可能需要使用wp_reset_query() 在此循环之前或之后(或两者都可能)。

相关推荐

如何让`wp-list-table`显示我在Custom-Post中的`Custom-Fields`

一切都好吗<我需要wp-list-table 也要显示custom-fields 在每个custom-post 我有,但我不知道如何做到这一点,在这幅图中,它显示了带有字段的表格:Title, Author and Publication Date: 我想要的是能够选择custom-fields 将出现,例如以下示例Title, Carta, Naipe, Author, and Date of Publication: