我希望特定用户发布最后修改/创建日期,然后回复它。
我要做的是:
<?php $id = get_the_ID();
global $current_user;
$current_user = wp_get_current_user();
$postID = $id; //assigning post id
$userID = $current_user->ID; // assigning user ID
$sql = "SELECT post_date FROM wp_posts WHERE ID = $postID AND post_author = $userID ORDER BY post_date DESC LIMIT 1";
$userModifiedDate = $wpdb->query($sql);
echo $userModifiedDate; ?>
我的错误在哪里?任何人都可以引导我完成这个吗?
目前$userModifiedDate
返回1
。
答案 0 :(得分:1)
$wpdb->query()
返回受影响的行数,而不是实际的查询结果。
http://codex.wordpress.org/Class_Reference/wpdb#Run_Any_Query_on_the_Database
尝试使用更具体的功能,例如$wpdb->get_var()
或$wpdb->get_results()
:
$userModifiedDate = $wpdb->get_var( $sql );
http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Variable
此外,虽然它不是绝对,但我总是希望首先通过$wpdb->prepare()
传递任何疑问:
$sql = $wpdb->prepare( "SELECT post_date FROM wp_posts WHERE ID = %d AND post_author = %d ORDER BY post_date DESC LIMIT 1", $postID, $userID );
http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks