[44] | 1 | <?php
|
---|
| 2 |
|
---|
| 3 | // This file is part of the Carrington Theme Framework for WordPress
|
---|
| 4 | // http://carringtontheme.com
|
---|
| 5 | //
|
---|
| 6 | // Copyright (c) 2008-2009 Crowd Favorite, Ltd. All rights reserved.
|
---|
| 7 | // http://crowdfavorite.com
|
---|
| 8 | //
|
---|
| 9 | // Released under the GPL license
|
---|
| 10 | // http://www.opensource.org/licenses/gpl-license.php
|
---|
| 11 | //
|
---|
| 12 | // **********************************************************************
|
---|
| 13 | // This program is distributed in the hope that it will be useful, but
|
---|
| 14 | // WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 15 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
---|
| 16 | // **********************************************************************
|
---|
| 17 |
|
---|
| 18 | if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
|
---|
| 19 |
|
---|
| 20 | function cfct_ajax_post_content($post_id) {
|
---|
| 21 | global $post, $posts, $wp_query, $wp;
|
---|
| 22 | $posts = get_posts('include='.$post_id);
|
---|
| 23 | $post = $posts[0];
|
---|
| 24 | if (is_null($post)) {
|
---|
| 25 | $posts = get_pages('include='.$post_id);
|
---|
| 26 | $post = $posts[0];
|
---|
| 27 | }
|
---|
| 28 | if (is_null($post)) {
|
---|
| 29 | $posts = get_posts('post_status=private&include='.$post_id);
|
---|
| 30 | $post = $posts[0];
|
---|
| 31 | if ($post) {
|
---|
| 32 | $user = wp_get_current_user();
|
---|
| 33 | if (!$user->ID || $user->ID != $post->post_author) {
|
---|
| 34 | $post = null;
|
---|
| 35 | }
|
---|
| 36 | }
|
---|
| 37 | }
|
---|
| 38 | if (!$post) {
|
---|
| 39 | die('');
|
---|
| 40 | }
|
---|
| 41 | $wp_query->in_the_loop = true;
|
---|
| 42 | setup_postdata($post);
|
---|
| 43 | remove_filter('the_content', 'st_add_widget');
|
---|
| 44 | $wp->send_headers();
|
---|
| 45 | cfct_content();
|
---|
| 46 | echo '<div class="close" id="post_close_'.$post_id.'"><a href="#">'.__('Close', 'carrington').'</a></div>';
|
---|
| 47 | }
|
---|
| 48 |
|
---|
| 49 | function cfct_ajax_post_comments($post_id) {
|
---|
| 50 | global $post, $posts, $wp_query, $wp;
|
---|
| 51 | $wp_query->is_single = true;
|
---|
| 52 | $posts = get_posts('include='.$post_id);
|
---|
| 53 | $post = $posts[0];
|
---|
| 54 | if (is_null($post)) {
|
---|
| 55 | $posts = get_pages('include='.$post_id);
|
---|
| 56 | $post = $posts[0];
|
---|
| 57 | }
|
---|
| 58 | setup_postdata($post);
|
---|
| 59 | $wp->send_headers();
|
---|
| 60 | comments_template();
|
---|
| 61 | }
|
---|
| 62 |
|
---|
| 63 | function cfct_ajax_load() {
|
---|
| 64 | if (isset($_GET['cfct_action'])) {
|
---|
| 65 | switch ($_GET['cfct_action']) {
|
---|
| 66 | case 'post_content':
|
---|
| 67 | case 'post_comments':
|
---|
| 68 | if (isset($_GET['id'])) {
|
---|
| 69 | $post_id = intval($_GET['id']);
|
---|
| 70 | }
|
---|
| 71 | else if (isset($_GET['url'])) {
|
---|
| 72 | $post_id = url_to_post_id($_GET['url']);
|
---|
| 73 | }
|
---|
| 74 | if ($post_id) {
|
---|
| 75 | call_user_func('cfct_ajax_'.$_GET['cfct_action'], $post_id);
|
---|
| 76 | die();
|
---|
| 77 | }
|
---|
| 78 | }
|
---|
| 79 | }
|
---|
| 80 | }
|
---|
| 81 |
|
---|
| 82 | function cfct_ajax_comment_link() {
|
---|
| 83 | global $post;
|
---|
| 84 | echo ' rev="post-'.$post->ID.'" ';
|
---|
| 85 | }
|
---|
| 86 | add_filter('comments_popup_link_attributes', 'cfct_ajax_comment_link');
|
---|
| 87 |
|
---|
| 88 | function cfct_posts_per_archive_page($query) {
|
---|
| 89 | $count = get_option('cfct_posts_per_archive_page');
|
---|
| 90 | intval($count) > 0 ? $count = $count : $count = 25;
|
---|
| 91 | $query->set('posts_per_archive_page', $count);
|
---|
| 92 | if (is_category()) {
|
---|
| 93 | $query->set('posts_per_page', $count);
|
---|
| 94 | }
|
---|
| 95 | return $query;
|
---|
| 96 | }
|
---|
| 97 | add_filter('pre_get_posts', 'cfct_posts_per_archive_page');
|
---|
| 98 |
|
---|
| 99 | ?> |
---|