2011-08-04 23 views
0

私はプラグインを作っていますが、この機能にはシングルポストの最後にマップが含まれています。 問題は、インデックス上のコンテンツが消えてしまうことです。この関数をコード化してインデックス上のコンテンツに影響を与えないようにするにはどうすればいいですか?Wordpressでインデックスコンテンツが消える

function svmpm_display_svm($content) { 
     global $post, $options; 

     $options = get_option('svmpm_options'); 
     $metaname = $options['metaname']; 
     $sheight = $options['hght']; 
     $swidth = $options['wdth']; 
     $svmpmaddress = get_post_meta($post->ID, $metaname, true); 

     if(is_single()) { 

      $acontent = '<div onunload="GUnload()"> 
         <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false" type="text/javascript"></script> 
         <div id="map_canvas" style="width: '; 
      $acontent .= $swidth; 
      $acontent .= '; height: '; 
      $acontent .= $sheight; 
      $acontent .= '"></div> 

         <script type="text/javascript"> 
         var myAddress = '; 
      $acontent .= '\''; 
      $acontent .= $svmpmaddress; 
      $acontent .= '\';'; 
      $acontent .= 'var userLocation = myAddress; 

         if (GBrowserIsCompatible()) { 
          var geocoder = new GClientGeocoder(); 
          geocoder.getLocations(userLocation, function (locations) {   
           if (locations.Placemark) 
           { 
           var north = locations.Placemark[0].ExtendedData.LatLonBox.north; 
           var south = locations.Placemark[0].ExtendedData.LatLonBox.south; 
           var east = locations.Placemark[0].ExtendedData.LatLonBox.east; 
           var west = locations.Placemark[0].ExtendedData.LatLonBox.west; 

           var bounds = new GLatLngBounds(new GLatLng(south, west), 
                   new GLatLng(north, east)); 

           new GStreetviewPanorama(document.getElementById("map_canvas"), 
                 { latlng: bounds.getCenter() }); 
           } 
          }); 
         } 
         </script> 
         </div>'; 
     if ($options['pbelow'] == 1) { //Only below p 
     return $content . $acontent; 
     }; 


     } ; 
}; 
add_filter('the_content', 'svmpm_display_svm'); 

答えて

1

は、あなたの関数の先頭に

if (! is_single()) return $content; 

を入れてみてください。 if (is_single())ブロックの外側に$contentを返すようなことはありません。

+1

これは私が自分自身を怒らせる部分です! :Dありがとう! – Gundars