How to Create Dynamic Xml Sitemap in Codeigniter
In this article, we will give information about how to create dynamic XML sitemap in Codeigniter. A sitemap is described navigate of the website. users can easily search to navigate the site by sitemap. it is creating in the XML coding.
We have given below example of how to create dynamic XML sitemap using Codeigniter. Add the below code in your controller file and Get the data from the database you want to create a sitemap URL and pass it in the view file.
So you can follow the below steps.
1. Create a Sitemap controller file in your project folder.
Add the below code in your controller file and Get the data from the database you want to create sitemap URL and pass it in the view file.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php defined('BASEPATH') OR exit('No direct script access allowed');` class Sitemap extends CI_Controller { function __construct() { parent::__construct(); } public function index() { $que = 'SELECT * FROM product'; $arrData['product_detail'] = $this->db->query($que)->result_array(); $this->load->view('sitemap', $arrData); } } ?> |
2. Create sitemap view file in your project folder.
Add bellow code in this file. in this bellow code in product name wise create dynamic xml sitemap and when this code run at that time sitemap.xml file automatically uploaded on your root directory of project folder.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php $xmlString = '<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" 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"> <url> <loc>http://www.example.com</loc> </url>'; foreach ($product_detail as $pd) { $xmlString .= '<url>'; $xmlString .= '<loc>'.base_url('product/'.$pd['name'].'</loc>'; $xmlString .= '</url>'; } $xmlString .= '</urlset>'; $dom = new DOMDocument; $dom->preserveWhiteSpace = FALSE; $dom->loadXML($xmlString); if($dom->save($_SERVER["DOCUMENT_ROOT"].'/sitemap.xml')){ echo "<h2>Site Map Created SuccessFully</h2>"; }else{ echo "<h2>Site Map Created Failed</h2>"; } ?> |