Beispiel #1
0
<?php

/**
 * If you are looking for the loop that's handling the single post page (single.php), check out loop-single.php
 **/
// $global_flag_to_hide_no_post_to_display - comes from page-category-big-grid.php and is a flag to hide the 'No posts to display' message if on category page there are between 1 and 5  posts
global $loop_module_id, $loop_sidebar_position, $global_flag_to_hide_no_post_to_display;
///if we are in wordpress loop; used by quotes in blocks to check if the blocks are displayed in blocks or in loop
td_global::$is_wordpress_loop = true;
$td_template_layout = new td_template_layout($loop_sidebar_position);
if (empty($loop_module_id)) {
    //not sure if we need a default here
    $loop_module_id = 1;
}
$td_module_class = td_util::get_module_class_from_loop_id($loop_module_id);
//disable the grid for some of the modules
$td_module = td_api_module::get_by_id($td_module_class);
if ($td_module['uses_columns'] === false) {
    $td_template_layout->disable_output();
}
if (have_posts()) {
    while (have_posts()) {
        the_post();
        echo $td_template_layout->layout_open_element();
        if (class_exists($td_module_class)) {
            $td_mod = new $td_module_class($post);
            echo $td_mod->render();
        } else {
            td_util::error(__FILE__, 'Missing module: ' . $td_module_class);
        }
        echo $td_template_layout->layout_close_element();
Beispiel #2
0
function td_ajax_loop()
{
    $loopState = td_util::get_http_post_val('loopState');
    //print_r($loopState);
    $buffy = '';
    /**
     * @var WP_Query
     */
    $td_query =& td_data_source::get_wp_query($loopState['atts'], $loopState['currentPage']);
    //by ref  do the query
    if (!empty($td_query->posts)) {
        td_global::$is_wordpress_loop = true;
        ///if we are in wordpress loop; used by quotes in blocks to check if the blocks are displayed in blocks or in loop
        $td_template_layout = new td_template_layout($loopState['sidebarPosition']);
        $td_module_class = td_util::get_module_class_from_loop_id($loopState['moduleId']);
        //disable the grid for some of the modules
        $td_module_api = td_api_module::get_by_id($td_module_class);
        if ($td_module_api['uses_columns'] === false) {
            $td_template_layout->disable_output();
        }
        foreach ($td_query->posts as $post) {
            $buffy .= $td_template_layout->layout_open_element();
            if (class_exists($td_module_class)) {
                $td_mod = new $td_module_class($post);
                $buffy .= $td_mod->render();
            } else {
                td_util::error(__FILE__, 'Missing module: ' . $td_module_class);
            }
            $buffy .= $td_template_layout->layout_close_element();
            $td_template_layout->layout_next();
        }
        $buffy .= $td_template_layout->close_all_tags();
    } else {
        // no posts
    }
    $loopState['server_reply_html_data'] = $buffy;
    die(json_encode($loopState));
}
Beispiel #3
0
 function related_posts()
 {
     global $post;
     //this is used by the loop down
     if (!$this->is_single) {
         return;
     }
     if (td_util::get_option('tds_similar_articles') == 'hide') {
         return;
     }
     if (td_util::get_option('tds_similar_articles_count') == '') {
         $tds_similar_articles_count = 2;
     } else {
         $tds_similar_articles_count = td_util::get_option('tds_similar_articles_count');
     }
     if (td_global::$cur_single_template_sidebar_pos == 'no_sidebar') {
         $tds_similar_articles_count = 3;
     }
     $buffy = '';
     $buffy .= '<div class="art-img-text-down similar-articles">';
     $args = array();
     switch (td_util::get_option('tds_similar_articles_type')) {
         //by tag
         case 'by_tag':
             $tags = wp_get_post_tags($this->post->ID);
             if ($tags) {
                 $taglist = array();
                 for ($i = 0; $i <= 4; $i++) {
                     if (!empty($tags[$i])) {
                         $taglist[] = $tags[$i]->term_id;
                     } else {
                         break;
                     }
                 }
                 $args = array('tag__in' => $taglist, 'post__not_in' => array($this->post->ID), 'showposts' => $tds_similar_articles_count, 'ignore_sticky_posts' => 1);
             }
             break;
             //by title
         //by title
         case 'by_auth':
             $args = array('author' => $this->post->post_author, 'post__not_in' => array($this->post->ID), 'showposts' => $tds_similar_articles_count, 'ignore_sticky_posts' => 1);
             break;
             //by category
         //by category
         default:
             $args = array('category__in' => wp_get_post_categories($this->post->ID), 'post__not_in' => array($this->post->ID), 'showposts' => $tds_similar_articles_count, 'ignore_sticky_posts' => 1);
             break;
     }
     if (!empty($args)) {
         //do the query
         $my_query = new WP_Query($args);
         if ($my_query->have_posts()) {
             $buffy .= '<h4 class="block-title"><span>' . __td('SIMILAR ARTICLES') . '</span></h4>';
             $td_template_layout = new td_template_layout('');
             //invalid sidebar position, it will default to 2 + 1
             if (td_global::$cur_single_template_sidebar_pos == 'no_sidebar') {
                 $td_template_layout->set_columns(3);
             } else {
                 $td_template_layout->set_columns(2);
             }
             while ($my_query->have_posts()) {
                 $my_query->the_post();
                 $buffy .= $td_template_layout->layout_open_element();
                 $td_module_6 = new td_module_6($post);
                 $buffy .= $td_module_6->render();
                 $buffy .= $td_template_layout->layout_close_element();
                 $td_template_layout->layout_next();
             }
             $buffy .= $td_template_layout->close_all_tags();
         }
     }
     $buffy .= '</div>';
     wp_reset_query();
     return $buffy;
 }