페이지, 이미지 및 미디어 파일의 사이트 맵을 구축하고 검색 엔진에 제출하는 클래스를 제공합니다.
사이트 맵 구성 요소를 설치하는 권장 방법은 작곡가를 통해입니다. 설치하려면 다음 명령을 실행하십시오.
php composer.phar require nilportugues/sitemap-component이 구성 요소는 주요 검색 엔진 인 Google 및 Bing에서 지원하는 사이트 맵을 XML 및 GZIP 형식으로 구축합니다.
Siteemap 구성 요소는 다음 유형의 사이트 맵을 구축 할 수 있습니다.
다른 siteemap.xml 파일에 대한 참조를 포함하는 색인 역할을하는 사이트 맵. 더 많은 문서가 여기에서 찾을 수 있습니다.
인터넷에서 발견되는 가장 일반적인 유형의 사이트 맵인 텍스트 콘텐츠 사이트 맵. 더 많은 문서가 여기에서 찾을 수 있습니다.
이미지를위한 사이트 맵. 더 많은 문서가 여기에서 찾을 수 있습니다.
비디오를위한 사이트 맵. 더 많은 문서가 여기에서 찾을 수 있습니다.
비디오 사이트 맵을위한 대안. 더 많은 문서가 여기에서 찾을 수 있습니다.
뉴스 기사 용 사이트 맵. 더 많은 문서가 여기에서 찾을 수 있습니다.
Siteemap 구성 요소는 표준의 100%를 따릅니다. 즉, 금기 사항을 엄격히 따릅니다.
<url> 요소 당 이미지 사이트 맵 파일에는 1000 개 이상의 이미지를 포함 할 수 없습니다. 이 구성 요소는 또한 생성 된 사이트 맵을 다음 검색 엔진에 제출하는 방법을 제공합니다.
<?php
use NilPortugues Sitemap SubmitSitemap ;
// $status = ['google' => true, 'bing' => true]; if everything went OK.
$ status = SubmitSitemap :: send ( ' http://example.com/sitemap-index.xml ' );SiteMap 인덱스를 사용하려면 먼저 사이트 맵 파일을 빌드해야합니다. 4.3, 4.4 및 4.5를 확인하십시오.
use NilPortugues Sitemap IndexSitemap ;
use NilPortugues Sitemap Item Index IndexItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new IndexSitemap ( ' path/to/folder ' , ' sitemap.index.xml ' );
$ item = new IndexItem ( ' http://www.example.com/sitemap.content.xml ' );
$ item -> setLastMod ( ' 2005-05-10T17:33:30+08:00 ' ); //Optional
$ sitemap -> add ( $ item );
$ item = new IndexItem ( ' http://www.example.com/sitemap.media.xml ' );
$ item -> setLastMod ( ' 2005-05-10T17:33:30+08:00 ' );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< sitemapindex xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " >
< sitemap >
< loc >http://www.example.com/sitemap.content.xml</ loc >
< lastmod >2005-05-10T17:33:30+08:00</ lastmod >
</ sitemap >
< sitemap >
< loc >http://www.example.com/sitemap.media.xml</ loc >
< lastmod >2005-05-10T17:33:30+08:00</ lastmod >
</ sitemap >
</ sitemapindex > use NilPortugues Sitemap Sitemap ;
use NilPortugues Sitemap Item Url UrlItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new Sitemap ( ' path/to/folder ' , ' sitemap.index.xml ' );
$ item = new UrlItem ( ' http://www.example.com/ ' );
$ item -> setPriority ( ' 1.0 ' ); //Optional
$ item -> setChangeFreq ( ' daily ' ); //Optional
$ item -> setLastMod ( ' 2014-05-10T17:33:30+08:00 ' ); //Optional
$ sitemap -> add ( $ item );
$ item = new UrlItem ( ' http://www.example.com/blog ' );
$ item -> setPriority ( ' 0.9 ' );
$ item -> setChangeFreq ( ' monthly ' );
$ item -> setLastMod ( ' 2014-05-10T17:33:30+08:00 ' );
$ sitemap -> add ( $ item );
$ item = new UrlItem ( ' http://www.example.com/contact ' );
$ item -> setPriority ( ' 0.8 ' );
$ item -> setChangeFreq ( ' never ' );
$ item -> setLastMod ( ' 2014-05-10T17:33:30+08:00 ' );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " >
< url >
< loc >http://www.example.com/</ loc >
< lastmod >2014-05-10T17:33:30+08:00</ lastmod >
< changefreq >daily</ changefreq >
< priority >1.0</ priority >
</ url >
< url >
< loc >http://www.example.com/blog</ loc >
< lastmod >2014-05-10T17:33:30+08:00</ lastmod >
< changefreq >monthly</ changefreq >
< priority >0.9</ priority >
</ url >
< url >
< loc >http://www.example.com/contact</ loc >
< lastmod >2014-05-10T17:33:30+08:00</ lastmod >
< changefreq >never</ changefreq >
< priority >0.8</ priority >
</ url >
</ urlset > use NilPortugues Sitemap ImageSitemap ;
use NilPortugues Sitemap Item Image ImageItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new ImageSitemap ( ' path/to/folder ' , ' sitemap.image.xml ' );
$ item = new ImageItem ( ' http://www.example.com/logo.png ' );
$ item -> setTitle ( ' Example.com logo ' ); //Optional
$ sitemap -> add ( $ item , ' http://www.example.com/ ' );
$ item = new ImageItem ( ' http://www.example.com/main.png ' );
$ item -> setTitle ( ' Main image ' ); //Optional
$ sitemap -> add ( $ item , ' http://www.example.com/ ' );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 "
xmlns:image= " http://www.google.com/schemas/sitemap-image/1.1 " >
< url >
< loc >http://www.example.com/</ loc >
< image : image >
< image : loc > <![CDATA[ http://www.example.com/logo.png ]]> </ image : loc >
< image : title > <![CDATA[ Example.com logo ]]> </ image : title >
</ image : image >
< image : image >
< image : loc > <![CDATA[ http://www.example.com/main.png ]]> </ image : loc >
< image : title > <![CDATA[ Main image ]]> </ image : title >
</ image : image >
</ url >
</ urlset > use NilPortugues Sitemap VideoSitemap ;
use NilPortugues Sitemap Item Video VideoItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new VideoSitemap ( ' path/to/folder ' , ' sitemap.video.xml ' );
$ item = new VideoItem (
' Grilling steaks for summer ' , //Title
' http://www.example.com/video123.flv ' , //URL
' http://www.example.com/videoplayer.swf?video=123 ' , //Player URL
' yes ' , //Optional
' ap=1 ' // Optional
);
//Optional Values
$ item -> setDescription ( ' Alkis shows you how to get perfectly done steaks everytime ' );
$ item -> setThumbnailLoc ( ' http://www.example.com/thumbs/123.jpg ' );
$ item -> setDuration ( 600 );
$ item -> setExpirationDate ( ' 2009-11-05T19:20:30+08:00 ' );
$ item -> setRating ( 4.2 );
$ item -> setViewCount ( 12345 );
$ item -> setPublicationDate ( ' 2007-11-05T19:20:30+08:00 ' );
$ item -> setFamilyFriendly ( ' yes ' );
$ item -> setRestriction ( ' IE GB US CA ' , ' allow ' );
$ item -> setGalleryLoc ( ' http://cooking.example.com ' , ' Cooking Videos ' );
$ item -> setPrice ( ' 0.99 ' , ' EUR ' , ' rent ' , ' HD ' );
$ item -> setPrice ( ' 0.75 ' , ' EUR ' , ' rent ' , ' SD ' );
$ item -> setCategory ( ' cooking ' );
$ item -> setTag ( array ( ' action ' , ' drama ' , ' entrepreneur ' ));
$ item -> setRequiresSubscription ( ' yes ' );
$ item -> setUploader ( ' GrillyMcGrillerson ' , ' http://www.example.com/users/grillymcgrillerson ' );
$ item -> setPlatform ( ' web mobile tv ' , ' allow ' );
$ item -> setLive ( ' no ' );
$ sitemap -> add ( $ item , ' http://www.example.com/ ' );
$ files = $ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " xmlns : video = " http://www.google.com/schemas/sitemap-video/1.1 " >
< url >
< loc >http://www.example.com/</ loc >
< video : video >
< video : thumbnail_loc > <![CDATA[ http://www.example.com/thumbs/123.jpg ]]> </ video : thumbnail_loc >
< video : title > <![CDATA[ Grilling steaks for summer ]]> </ video : title >
< video : description > <![CDATA[ Alkis shows you how to get perfectly done steaks everytime ]]> </ video : description >
< video : content_loc > <![CDATA[ http://www.example.com/video123.flv ]]> </ video : content_loc >
< video : duration > <![CDATA[ 600 ]]> </ video : duration >
< video : expiration_date > <![CDATA[ 2009-11-05T19:20:30+08:00 ]]> </ video : expiration_date >
< video : publication_date > <![CDATA[ 2007-11-05T19:20:30+08:00 ]]> </ video : publication_date >
< video : restriction relationship = " allow " >IE GB US CA</ video : restriction >
< video : gallery_loc title = " Cooking Videos " >http://cooking.example.com</ video : gallery_loc >
< video : price currency = " EUR " type = " rent " resolution = " HD " >0.99</ video : price >
< video : price currency = " EUR " type = " rent " resolution = " SD " >0.75</ video : price >
< video : tag >action</ video : tag >
< video : tag >drama</ video : tag >
< video : tag >entrepreneur</ video : tag >
< video : requires_subscription > <![CDATA[ yes ]]> </ video : requires_subscription >
< video : uploader >GrillyMcGrillerson</ video : uploader >
< video : platform relationship = " allow " >web mobile tv</ video : platform >
< video : live > <![CDATA[ no ]]> </ video : live >
</ video : video >
</ url >
</ urlset > use NilPortugues Sitemap MediaSitemap ;
use NilPortugues Sitemap Item Media MediaItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new MediaSitemap ( ' path/to/folder ' , ' sitemap.media.xml ' );
$ sitemap -> setTitle ( ' Media RSS de ejemplo ' );
$ sitemap -> setLink ( ' http://www.example.com/ejemplos/mrss/ ' );
$ sitemap -> setDescription ( ' Ejemplo de MRSS ' );
$ item = new MediaItem ( ' http://www.example.com/examples/mrss/example1.html ' );
//Optional
$ item -> setContent ( ' video/x-flv ' , 120 );
$ item -> setPlayer ( ' http://www.example.com/shows/example/video.swf?flash_params ' );
$ item -> setTitle ( ' Barbacoas en verano ' );
$ item -> setDescription ( ' Consigue que los filetes queden perfectamente hechos siempre ' );
$ item -> setThumbnail ( ' http://www.example.com/examples/mrss/example1.png ' , 120 , 160 );
$ sitemap -> add ( $ item );
$ item = new MediaItem ( ' http://www.example.com/examples/mrss/example2.html ' );
$ item -> setContent ( ' video/x-flv ' , 120 );
$ item -> setPlayer ( ' http://www.example.com/shows/example/video.swf?flash_params ' );
$ item -> setTitle ( ' Barbacoas en invierno ' );
$ item -> setDescription ( ' Consigue unos filetes frios ' );
$ item -> setThumbnail ( ' http://www.example.com/examples/mrss/example2.png ' , 120 , 160 );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< rss version = " 2.0 " xmlns : media = " http://search.yahoo.com/mrss/ " xmlns : dcterms = " http://purl.org/dc/terms/ " >
< channel >
< title >Media RSS de ejemplo</ title >
< link >http://www.example.com/ejemplos/mrss/</ link >
< description >Ejemplo de MRSS</ description >
< item xmlns : media = " http://search.yahoo.com/mrss/ " xmlns : dcterms = " http://purl.org/dc/terms/ " >
< link >http://www.example.com/examples/mrss/example1.html</ link >
< media : content type = " video/x-flv " duration = " 120 " >
< media : player url = " http://www.example.com/shows/example/video.swf?flash_params " />
< media : title >Barbacoas en verano</ media : title >
< media : description >Consigue que los filetes queden perfectamente hechos siempre</ media : description >
< media : thumbnail url = " http://www.example.com/examples/mrss/example1.png " height = " 120 " width = " 160 " />
</ media : content >
</ item >
< item xmlns : media = " http://search.yahoo.com/mrss/ " xmlns : dcterms = " http://purl.org/dc/terms/ " >
< link >http://www.example.com/examples/mrss/example2.html</ link >
< media : content type = " video/x-flv " duration = " 240 " >
< media : player url = " http://www.example.com/shows/example/video.swf?flash_params " />
< media : title >Barbacoas en invierno</ media : title >
< media : description >Consigue unos filetes frios</ media : description >
< media : thumbnail url = " http://www.example.com/examples/mrss/example2.png " height = " 120 " width = " 160 " />
</ media : content >
</ item >
</ channel >
</ rss > use NilPortugues Sitemap NewsSitemap ;
use NilPortugues Sitemap Item News NewsItem ;
use NilPortugues Sitemap SitemapException ;
try {
$ sitemap = new NewsSitemap ( ' path/to/folder ' , ' sitemap.news.xml ' );
$ item = new NewsItem (
' http://www.example.org/business/article55.html ' , //URL
' Companies A, B in Merger Talks ' , //Title
' 2008-12-23 ' , //Publication Date
' The Example Times ' , //Publication Name
' en ' //locale
);
//Optional Values
$ item -> setAccess ( ' Subscription ' );
$ item -> setKeywords ( ' business, merger, acquisition, A, B ' );
$ item -> setStockTickers ( ' NASDAQ:A, NASDAQ:B ' );
$ item -> setGenres ( ' PressRelease, Blog ' );
$ sitemap -> add ( $ item );
$ sitemap -> build ();
} catch ( SitemapException $ e ) {
echo $ e -> getMessage ();
}<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< urlset xmlns = " http://www.sitemaps.org/schemas/sitemap/0.9 " xmlns : news = " http://www.google.com/schemas/sitemap-news/0.9 " >
< url >
< loc >http://www.example.org/business/article55.html</ loc >
< news : news >
< news : publication >
< news : name >The Example Times</ news : name >
< news : language >en</ news : language >
</ news : publication >
< news : access >Subscription</ news : access >
< news : genres >PressRelease, Blog</ news : genres >
< news : publication_date >2008-12-23</ news : publication_date >
< news : title >Companies A, B in Merger Talks</ news : title >
< news : keywords >business, merger, acquisition, A, B</ news : keywords >
< news : stock_tickers >NASDAQ:A, NASDAQ:B</ news : stock_tickers >
</ news : news >
</ url >
</ urlset >PHPUNIT 및 TRAVIS-CI를 사용하여 테스트를 수행했습니다. 모든 코드는 PHP 5.4에서 PHP 5.6 및 Facebook의 HHVM까지 호환되는 것으로 테스트되었습니다.
이메일을 보내거나 사용하여 저와 연락하십시오.
-
Nil Portugués Calderó