Example #1
0
 public function getPosts()
 {
     global $wpdb, $post;
     $taxonomies = new wpTaxonomies('');
     $taxonomy_ids = $taxonomies->getTaxonomiesIds($post->ID, $this->taxonomies);
     $subquery = 'SELECT COUNT(st.term_id) FROM wp_posts AS sp LEFT JOIN wp_term_relationships AS str ON (sp.ID = str.object_id)
                  LEFT JOIN wp_term_taxonomy AS stt ON (str.term_taxonomy_id = stt.term_taxonomy_id)
                  LEFT JOIN wp_terms AS st ON (st.term_id = stt.term_id)
                  WHERE st.term_id IN (' . $taxonomy_ids . ') AND sp.ID = p.ID';
     $query = 'SELECT DISTINCT p.ID, p.post_title, p.post_date, image.meta_value AS image, t.term_id, t.name, t.slug';
     $query .= ', (' . $subquery . ') as equals';
     $query .= ' FROM wp_posts AS p';
     $query .= ' LEFT JOIN wp_postmeta AS image ON (image.meta_key = "_thumbnail_id" and image.post_id = p.ID)';
     $query .= ' LEFT JOIN wp_term_relationships AS tr ON (p.ID = tr.object_id)
 LEFT JOIN wp_term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
 LEFT JOIN wp_terms AS t ON (t.term_id = tt.term_id)';
     $query .= ' WHERE p.post_type="' . $post->post_type . '" AND p.post_status = "publish"';
     $query .= ' AND t.term_id IN (' . $taxonomy_ids . ')';
     $query .= ' AND p.ID != ' . $post->ID . '';
     $query .= ' GROUP BY p.ID';
     $query .= ' ORDER BY equals DESC, p.post_date DESC ';
     $query .= ' LIMIT 0,' . $this->limit;
     $postsQuery = $wpdb->get_results($query);
     $posts = $postsQuery;
     //print $query;
     wp_reset_query();
     $wpdb->flush();
     unset($postsQuery);
     return $posts;
 }
Example #2
0
 private function buildBreadcrumbs()
 {
     $textdomain = $this->textdomain;
     $home_icon = $this->home_icon;
     $delimeter = $this->delimeter;
     global $post, $themename, $exclude_categories;
     $wp_query = $GLOBALS['wp_query'];
     $breadcrumbs = array();
     $homePageText = __('Home', $textdomain);
     $homeLink = get_bloginfo('url');
     $i = 0;
     if (is_home() || is_front_page()) {
         $breadcrumbs[$i]['text'] = $homePageText;
         $breadcrumbs[$i]['link'] = '';
         $breadcrumbs[$i]['icon'] = $home_icon;
         $i++;
     } else {
         $breadcrumbs[$i]['text'] = $homePageText;
         $breadcrumbs[$i]['link'] = $homeLink;
         $breadcrumbs[$i]['icon'] = $home_icon;
         $i++;
         if (is_category()) {
             $term = get_category(get_query_var('cat'), false);
             $breadcrumbs = $this->getTermBreadcrumbs($breadcrumbs, $i, $term);
             $i = sizeof($breadcrumbs);
         } elseif (is_tax()) {
             $term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy'));
             foreach ($this->post_types as $type => $taxonomy) {
                 if (get_query_var('taxonomy') == $taxonomy) {
                     $breadcrumbs = $this->getArchiveCrumb($breadcrumbs, $i, $type);
                     $i = sizeof($breadcrumbs);
                 }
             }
             $breadcrumbs = $this->getTermBreadcrumbs($breadcrumbs, $i, $term);
             $i = sizeof($breadcrumbs);
         } elseif (is_search()) {
             $breadcrumbs[$i]['text'] = __('Search results for :', $textdomain) . ' ' . get_search_query();
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_day()) {
             $breadcrumbs[$i]['text'] = get_the_time('Y');
             $breadcrumbs[$i]['link'] = get_year_link(get_the_time('Y'));
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
             $breadcrumbs[$i]['text'] = get_the_time('F');
             $breadcrumbs[$i]['link'] = get_month_link(get_the_time('Y'), get_the_time('m'));
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_month()) {
             $breadcrumbs[$i]['text'] = get_the_time('Y');
             $breadcrumbs[$i]['link'] = get_year_link(get_the_time('Y'));
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
             $breadcrumbs[$i]['text'] = get_the_time('F');
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_year()) {
             $breadcrumbs[$i]['text'] = get_the_time('Y');
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_single() && !is_attachment()) {
             $title = get_the_title();
             if (get_post_type() != 'post') {
                 $breadcrumbs = $this->getArchiveCrumb($breadcrumbs, $i);
                 $i = sizeof($breadcrumbs);
                 $taxonomies = get_object_taxonomies($post);
                 foreach ($this->post_types as $type => $taxonomy) {
                     if (in_array($taxonomy, $taxonomies)) {
                         $terms = get_the_terms($post->id, $taxonomy);
                         $breadcrumbs = $this->getTermBreadcrumbs($breadcrumbs, $i, $terms[0], true, $taxonomy);
                         $i = sizeof($breadcrumbs);
                     }
                 }
                 $breadcrumbs[$i]['text'] = $title;
                 $breadcrumbs[$i]['link'] = '';
                 $breadcrumbs[$i]['icon'] = $delimeter;
                 $i++;
             } else {
                 $id = get_the_ID();
                 $taxonomies = new wpTaxonomies('');
                 $category = $taxonomies->getTaxonomies($id, array(), array('category'));
                 $breadcrumbs = $this->getTermBreadcrumbs($breadcrumbs, $i, $category[0], true, 'category');
                 $i = sizeof($breadcrumbs);
                 $breadcrumbs[$i]['text'] = $title;
                 $breadcrumbs[$i]['link'] = '';
                 $breadcrumbs[$i]['icon'] = $delimeter;
                 $i++;
             }
         } elseif (!is_single() && !is_page() && get_post_type() != 'post' && !is_404()) {
             $post_type_name = get_post_type();
             $post_type = get_post_type_object($post_type_name);
             $post_type_link = get_post_type_archive_link($post_type_name);
             $breadcrumbs[$i]['text'] = $post_type->labels->name;
             $breadcrumbs[$i]['link'] = $post_type_link;
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_page() && !$post->post_parent) {
             $title = get_the_title();
             $breadcrumbs[$i]['text'] = $title;
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_page() && $post->post_parent) {
             $parent_id = $post->post_parent;
             while ($parent_id) {
                 $parent = get_post($parent_id);
                 $breadcrumbs[$i]['text'] = get_the_title($parent->ID);
                 $breadcrumbs[$i]['link'] = get_permalink($parent->ID);
                 $breadcrumbs[$i]['icon'] = $delimeter;
                 $i++;
                 $parent_id = $parent->post_parent;
                 unset($parent);
             }
             unset($parent);
             $title = get_the_title();
             $breadcrumbs[$i]['text'] = $title;
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_tag()) {
             $breadcrumbs[$i]['text'] = single_tag_title('', false);
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_author()) {
             global $author;
             $userdata = get_userdata($author);
             $breadcrumbs[$i]['text'] = $userdata->display_name;
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         } elseif (is_404()) {
             $breadcrumbs[$i]['text'] = __('Error 404', $this->textdomain);
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         }
         if (get_query_var('paged')) {
             $breadcrumbs[$i]['text'] = __('Page') . ' ' . get_query_var('paged');
             $breadcrumbs[$i]['link'] = '';
             $breadcrumbs[$i]['icon'] = $delimeter;
             $i++;
         }
     }
     return $breadcrumbs;
 }