Getting values from wpdb

时间:2016-11-04 作者:Rafal

我正在尝试从列中获取值nameid. 谁能告诉我如何在循环中获得这两个值,并调整Wordpress的sql?

function get_calendar_ids() {

    global $wpdb;
$user_id = get_current_user_id();
$sql = $wpdb->prepare( "
Select
  wp_calendars.user_id,
  wp_calendars.name,
  wp_calendars.id
From
  wp_calendars
Where
  wp_calendars.user_id = \'$user_id\'
");
$calendars = $wpdb->get_results( $sql );
     if ($calendars ) {
        return $calendars;
        echo $sql;
    }
}

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

你离目标不远。这个get_calendar_ids 只能返回$calendars.

在您的功能中$wpdb->get_results( $sql ) 将返回一个包含您请求的数据的对象。

function get_calendar_ids() {

    global $wpdb;
$user_id = get_current_user_id();
$sql = $wpdb->prepare( "
    Select
      wp_calendars.user_id,
      wp_calendars.name,
      wp_calendars.id
    From
      wp_calendars
    Where
      wp_calendars.user_id = \'$user_id\'
");
    $calendars = $wpdb->get_results( $sql );
     if ($calendars ) {
        return $calendars;          
     }
}
您的函数现在返回一个只有user\\u id、name和id的对象,结果必须在一个循环中才能回显结果,您可以像这样在foreach循环中获取$calendar->name。

短代码中的示例,

add_shortcode(\'calendars\', \'get_calendars\');

function get_calendar($atts, $content = ""){

    // you can add $atts extract_args if need

    $calendars = get_calendar_ids();

    if($calendars){
        foreach($calendars as $calendar){
            $user_data = get_userdata(get_current_user_id());
            echo \'<a href="\'.get_permalink($calendar->id).\'">\'.$calendar->name . \'</a> by \'.$user_data->user_nicename.\'</br>\';

        }
    }
}
希望有帮助

相关推荐

$wpdb->get_row返回什么?

由于插件中的调试和错误查找,我有一个简短的问题。$wpdb->;如果没有结果,返回get\\u row()?文件说明:(array|object|null|void) Database query result in format specified by $output or null on failure. 但当查看源代码时,它似乎返回了;null“;。。。如果您能快速提供帮助,我将不胜感激,我一直认为它会返回一个空数组,但我可能弄错了!