我重新格式化了你的代码。请始终使用$wpdb->prepare()
用于SQL查询。这个switch-case
如果elseif elseif elseif elseif tadada是一个更好的解决方案。
我没有测试代码,我没有你数据库的副本,但你把return
内部foreach
环也许这就是错误所在。
<?php
function notes_by_comments() {
global $wpdb;
$current_user = wp_get_current_user();
$note_content = \'<h5 style="border-bottom: 1px solid #DADADA; padding-bottom: 7px;padding-top: 25px;"><strong>Notes</strong></h5>\';
$commentQuery = $wpdb->prepare(
\'SELECT * from $wpdb->comments WHERE user_id=%d ORDER BY %s DESC LIMIT 0 ,5\',
$current_user->ID,
comment_date
);
$comments = $wpdb->get_results( $commentQuery );
foreach ( $comments as $comment ) {
$note_content = \'\';
$note_content .= sprintf( \'<li><b>Note for</b> <a href="%s#comment-%d">\',
get_permalink( $comment->comment_post_ID ),
$comment->comment_ID
);
$note_content .= get_the_title( $comment->comment_post_ID ) . \'</a> -\';
switch ( get_post_type( $comment->comment_post_ID ) ) {
case \'for_sale_listings\':
$note_content .= "<b>Sale Listing</b>";
break;
case \'rental_listings\':
$note_content .= "<b>Rental Listing</b>";
break;
case \'roomate_share\':
$note_content .= "<b>Roommate Share</b>";
break;
default:
$note_content .= \'\';
}
$note_content .= sprintf( \'<p>%s</p></li>\', $comment->comment_content );
}
return $note_content;
}
add_shortcode( \'notes\', \'notes_by_comments\' );
具有缩进的格式良好的代码总是用于查找错误。