从所有帖子中获取特定的ACF密钥和值-无法访问数据库

时间:2017-11-14 作者:Dirty Bird Design

我有一个自定义的帖子类型“product”,我想检索并在页面上显示ACF字段“product\\u url”的所有值。我没有通过PHP MyAdmin访问db的权限,所以我试图查询数据并显示在页面上。我无法让它正常工作。我最近得到的是帖子标题,但只要我修改下面的代码,它就会停止工作。

function output_product_links() {
    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="links">\';
            foreach( $results as $index => $post ) {
            $output .= \'<li id="\' . $post[\'ID\'] . \'">\' . $post[\'post_title\'] . \'</li>\';
                }
            $output .= \'</ul>\';
            return $output;
    }
每当我将SQL查询中的“post\\u title”和$output更改为“product\\u url”时,都不会输出任何内容。我想要一个列表,显示产品名称,然后是列表中所有帖子类型=产品的产品url。

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

为什么要使用$wpdb?这是一个简单的查询,请查看ACF文档中的用法示例(https://www.advancedcustomfields.com/resources/query-posts-custom-fields/)

<?php 
// args
$args = array(
    \'numberposts\'   => -1,
    \'post_type\'     => \'product\'
);

// query
$the_query = new WP_Query($args);

?>
<?php if( $the_query->have_posts() ):?>
    <ul>
    <?php while( $the_query->have_posts() ) : $the_query->the_post();?>
        <li>
            <?php the_title();?> - <a href="<?php the_field(\'product_url\');?>"><?php the_field(\'product_url\');?></a>
        </li>
    <?php endwhile;?>
    </ul>
<?php endif;?>

<?php wp_reset_query();?>

结束

相关推荐

如何将自定义字段中的日期与自定义WP_QUERY中的今天日期进行比较?

我有一个比赛列表,我使用Wordpress内置的自定义字段以YYYYMMDD格式设置比赛的截止日期。我想创建一个自定义循环,只显示现在已结束的比赛,这意味着他们的截止日期比今天的日期早。我尝试了以下操作,但这会显示所有比赛,包括公开赛和非公开赛:$args = array( \'meta_query\' => array( \'key\' => \'deadline\', \'value\' => date( \'Ymd\'