Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Apr 20th, 2012  |  syntax: PHP  |  size: 4.85 KB  |  views: 34  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. ?>
clone this paste RAW Paste Data