Show private entries when logged in
http://wiki.cornbreadtree.org/index.php?title=How_do_I_set_up_Wordpress_on_cornbreadtree.org%3F#Show_private_entries_when_logged_in
I have no idea why this bug hasn't been fixed in the Wordpress 1.5 codebase, but $user_ID never seems to be set properly when PHP goes to the database. Call get_currentuserinfo() immediately before to ensure all the posts are retreived.
wp-includes/classes.php:
get_currentuserinfo();
// Get private posts
if (isset($user_ID) && ('' != intval($user_ID)))
$where .= " OR post_author = $user_ID AND post_status != 'draft' AND post_status != 'static')";
else
$where .= ')';
Once all the posts are loaded (when the owner is logged in, of course), distinguish between private and published posts with the following hack:
wp-includes/template-functions-post.php:
function get_the_title($id = 0) {
global $post, $wpdb;
if ( 0 != $id ) {
$id_post = $wpdb->get_row("SELECT post_title, post_password FROM $wpdb->posts WHERE ID = $id");
$title = $id_post->post_title;
if (!empty($id_post->post_password))
$title = sprintf(__('Protected: %s'), $title);
}
else {
$title = $post->post_title;
if (!empty($post->post_password))
$title = sprintf(__('Protected: %s'), $title);
}
if ($post->post_status == "private") {
$title = sprintf(__('Private: %s'), $title);
}
return $title;
}
浙公网安备 33010602011771号