我想创建一个在按字母顺序排列的列表中显示3个ACF值的页面。我有一个自定义的帖子类型=“产品”,并希望显示以下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字段值时,我得不到输出。请指教。
答案 0 :(得分:2)
那是因为你在查询数据库中的细节......那里的字段不存在。 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字段的内容
答案 1 :(得分:1)
File "/home/reinaldo/Documentos/Code/ti/bin/autosub", line 136
print "The given file does not exist: {0}".format(filename)
^
SyntaxError: invalid syntax