Guest User

Untitled

a guest
Apr 20th, 2012
91
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. add_action("publish_post", "eg_create_sitemap");
  3. add_action("save_post", "eg_create_sitemap");
  4. add_action("edit_post", "eg_create_sitemap");
  5.  
  6. function eg_create_sitemap() {
  7.   $postsForSitemap = get_posts(array(
  8.     'numberposts' => -1,
  9.     'category__in' => array(794,817,812,806),
  10.     'orderby' => 'post_date',
  11.     'post_type'  => array('post'),
  12.     'order'    => 'DESC',
  13.     'post_status'  => 'publish'
  14.   ));
  15.  
  16.   $sitemap = '<?xml version="1.0" encoding="utf-8"?>'."\n";
  17.   $sitemap .= '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:review="http://www.google.com/schemas/">'."\n";
  18.  
  19.   global $wpdb, $post;     
  20.  
  21.   foreach($postsForSitemap as $post)
  22.   {
  23.             setup_postdata($post);
  24.            
  25.             $post_id = $post->ID;
  26.             $postDate = $post->post_date;
  27.             $postContent = htmlspecialchars($post->post_excerpt);
  28.             $postName = htmlspecialchars($post->post_name);
  29.             $posttitle = htmlspecialchars($post->post_title);      
  30.             $postURL = get_permalink( $post->ID );
  31.             $postAuthor = get_the_author();
  32.             $postCategories = get_the_category($post_id);
  33.             $reviewScore = $wpdb->query(
  34.                 $wpdb->prepare(
  35.                 "SELECT review FROM tableName_gdsr_data_article WHERE post_id = '$post_id'"
  36.                 )
  37.             );
  38.             $reviewMaxScore = 5;
  39.             $omdomePros = get_post_meta($post->ID, 'omdome_pros', true);
  40.             $omdomePros = str_replace('<br />', ',', $omdomePros);
  41.             $omdomePros = str_replace('&nbsp;', '', $omdomePros);
  42.             $omdomePros = strip_tags($omdomePros);
  43.             $omdomeProsArray = explode(',', $omdomePros);
  44.            
  45.             $omdomeCons = get_post_meta($post->ID, 'omdome_cons', true);
  46.             $omdomeCons = str_replace('<br />', ',', $omdomeCons);
  47.             $omdomeCons = str_replace('&nbsp;', '', $omdomeCons);
  48.             $omdomeCons = strip_tags($omdomeCons);
  49.             $omdomeConsArray = explode(',', $omdomeCons);
  50.            
  51.             $productName = get_post_meta($post->ID, 'pricerunner_productName', true);
  52.             $productCat = get_post_meta($post->ID, 'pricerunner_productCatID', true);
  53.            
  54.             $gameFormat = get_post_meta($post->ID, 'gameDetails_format', true);
  55.             $gameGenre = get_post_meta($post->ID, 'gameDetails_genre', true);
  56.             $gameDeveloper = get_post_meta($post->ID, 'gameDetails_utvecklare', true);
  57.             $gameDistributor = get_post_meta($post->ID, 'gameDetails_utgivare', true);
  58.             $gamePlayers = get_post_meta($post->ID, 'gameDetails_antalSpelare', true);
  59.  
  60.             $sitemap .= '<review id="'.$post_id.'">'."\n".
  61.                   "\t".'<url>'. $postURL .'</url>'."\n".
  62.                   "\t".'<title>'. $posttitle .'</title>'."\n".
  63.                   "\t".'<date>'. $postDate .'</date>'."\n".
  64.                   "\t".'<author>'. $postAuthor .'</author>'."\n".
  65.                   "\t".'<summary>'. $postContent .'</summary>'."\n".
  66.                   "\t".'<score>'. $reviewScore .'</score>'."\n".
  67.                   "\t".'<max-score>'. $reviewMaxScore .'</max-score>'."\n";
  68.                  
  69.             if ($postCategories) {
  70.                   foreach($postCategories as $postCategory) {
  71.                     $catcat = $postCategory->cat_name;
  72.                     // If the parent category is Teknik
  73.                     if($catcat == "Teknik") {
  74.                         $sitemap .= "\t".'<pricerunnerName>'. $productName .'</pricerunnerName>'."\n";
  75.                         $sitemap .= "\t".'<pricerunnerID>'. $productCat .'</pricerunnerID>'."\n";
  76.                         if($omdomeProsArray) {
  77.                             foreach($omdomeProsArray as $prosArray) {
  78.                                 $sitemap .= "\t".'<pros>'.$prosArray.'</pros>'."\n";
  79.                                 }
  80.                             }
  81.                         if($omdomeConsArray) {
  82.                             foreach($omdomeConsArray as $consArray) {
  83.                                 $sitemap .= "\t".'<cons>'.$consArray.'</cons>'."\n";
  84.                                 }
  85.                             }
  86.                         }
  87.                     // If the parent category is Spel  
  88.                     if($catcat == "Spel") {
  89.                         if($omdomeProsArray) {
  90.                             foreach($omdomeProsArray as $prosArray) {
  91.                                 $sitemap .= "\t".'<pros>'.$prosArray.'</pros>'."\n";
  92.                                 }
  93.                             }
  94.                         if($omdomeConsArray) {
  95.                             foreach($omdomeConsArray as $consArray) {
  96.                                 $sitemap .= "\t".'<cons>'.$consArray.'</cons>'."\n";
  97.                                 }
  98.                             }
  99.                         $sitemap .= "\t".'<format>'. $gameFormat .'</format>'."\n";
  100.                         $sitemap .= "\t".'<genre>'. $gameGenre .'</genre>'."\n";
  101.                         $sitemap .= "\t".'<developer>'. $gameDeveloper .'</developer>'."\n";
  102.                         $sitemap .= "\t".'<distributor>'. $gameDistributor .'</distributor>'."\n";
  103.                         $sitemap .= "\t".'<players>'. $gamePlayers .'</players>'."\n";
  104.                         }
  105.                   }
  106.                 }
  107.                  
  108.             if ($postCategories) {
  109.                   foreach($postCategories as $postCategory) {
  110.                     $sitemap .= "\t".'<category>'.$postCategory->cat_name.'</category>'."\n";
  111.                   }
  112.                 }
  113.  
  114.             $sitemap .='</review>'."\n";
  115.   }
  116.  
  117.   $sitemap .= '</urlset>';
  118.  
  119.   $fp = fopen(ABSPATH . "reviews.xml", 'w');
  120.   fwrite($fp, $sitemap);
  121.   fclose($fp);
  122. }
  123.  
  124. ?>
RAW Paste Data