我想创建一个页面,以按字母顺序排列的列表显示 3 个 ACF 值。我有一个自定义帖子类型 ="product"并想显示以下 twi 字段(都是 ACF 文本字段)1. vendor_or_brand_name 和 2. product_url
我可以像这样从产品帖子类型中输出所有帖子标题:
function output_product_list() {
global $wpdb;
$custom_post_type = 'product';
$results = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_title FROM {$wpdb->posts} WHERE post_type = %s and post_status = 'publish'", $custom_post_type ), ARRAY_A );
if ( ! $results )
return;
$output = '<ul id="products">';
foreach( $results as $index => $post ) {
$output .= '<li id="' . $post['ID'] . '">' . $post['post_title'] . '</li>';
}
$output .= '</ul>'; // end of select element
return $output;
}
但是当我尝试将“post_title”修改为任一 ACF 字段值时,我没有得到任何输出。请指教。
最佳答案
那是因为您正在查询数据库中的细节……那里不存在这些字段。 ACF 具有获取字段值的现有函数,例如get_field()
所以在你的情况下:
function output_product_list() {
global $wpdb;
$custom_post_type = 'product';
$results = $wpdb->get_results( $wpdb->prepare( "SELECT ID, post_title FROM {$wpdb->posts} WHERE post_type = %s and post_status = 'publish'", $custom_post_type ), ARRAY_A );
if ( ! $results )
return;
$output = '<ul id="products">';
foreach( $results as $index => $post ) {
$output .= '<li id="' . $post['ID'] . '">' . get_field('ACF_FIELD_NAME',$post['ID']) . '</li>';
}
$output .= '</ul>'; // end of select element
return $output;
}
请务必将 ACF_FIELD_NAME
更改为您在 WP Admin 中命名的 ACF 字段
关于php - WP 显示页面上所有帖子的 ACF 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47291529/