你离目标不远。这个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>\';
}
}
}
希望有帮助