Hallo apa kabar teman semyanya, kembali lagi bersama Teman Ngoding.
Kali ini kita akan membuat sitemap otomatis menggunakan Codeigniter 4. Sitemap begitu petning dalam sebuah website, karena berguna untuk menunjukan peta kepada mensin pencari contohnya Goole, Bing, Yahoo dan lainnya.
Codeigniter merupakan framework php yang banyak digunakan. dan sekarang telah banyak pengguna codeigniter 3 beralih menggunakan codeigniter 4. Banyak sekalah codeigniter untuk membangun sebuah CMS seperti wordpress. Bedanya kita harus ngoding terlebih dahulu.
Jika kita menggunakan CMS yang sudah ada, biasanya mereka menyediakan Sitemapnya juga, kalau kita membangun website menggunakan codeigniter maka kita harus membuatnya.
Dengan demikian saya akan memberikan tutorial membuat sitemap otomatis menggunakan codeigniter 4.
Teman teman dapat membaca tutorial saya yang lainnya:
Codeigniter 4 ~ Membuat Notifikasi Menggunakan SweetAlert
Tutorial CodeIgniter 4 part 2 ~ Rest Api CRUD Codeigniter 4
Tutorial Codeigniter 3 ~ Menggunakan Multiple select2 dan menyimpan dengan format json
1. Setting File Routes
Pertama-tama anda harus mengatur atau setting routes.php yang terdapat pada folder app/config/routes.php setelah itu silakan anda edit file tersebut. Tambahkan kode dibawah ini tepat di paling bawah dalam file.
$routes->get('sitemap\.xml', 'Sitemap::sitemap_index');
Kode tersebut berguna untuk supaya bisa memakai file ekstensi .xml (contohnya : https://www.domainku.com/sitemap.xml)
2. Tambahkan Model
Langkah selanjutnya adalah kita buka folder app/models kemudian buat file dengan nama SitemapModel.php setelah itu edit dan masukkan kode dibawah ini.
<?php namespace App\Models;
use CodeIgniter\Model;
class SitemapModel extends CI_Model {
public function __construct() {
//disini untuk mengetahui usernya kita pake seession id biar lebih mudah
parent::__construct();
$db = \Config\Database::connect();
$this->pengunjung = $db->table('post');
}
public function get_sitemap(){
$builder = $this->komen;
$builder->select('*');
$builder->orderBy('created_at', 'DESC');
$query = $builder->get();
return $query->getResult();
}
}
?>
kode tersebut berfungsi untuk mengambil data dalam CMS di CodeIgniter tersebut. Contohnya di sini kita mengambil data dari tabel post.
3. Tambahkan Controller
Langkah berikutnya adalah membuka foleder app/controllers dan buatlah file dengan nama SitemapController.php setelah itu silakan edit dan tambahkan kode dibawah ini.
<?php namespace App\Controllers\admin;
use CodeIgniter\Controller;
use App\Models\SitemapModel;
class SitemapController extends Controller
{
public function __construct() {
$this->SitemapModel = new SitemapModel();
}
public function index(){
$post = $this->SitemapModel->get_sitemap();
$data = [
'post' => $post,
];
return view('sitemap', $data);
}
}
?>
4. Tambahkan View
Langkah selanjutnya adalah membuka folder app/view atau diluar folder tersebut juga boleh. Selanjutnya tambahkan file dengan nama sitemap.php setelah itu edit dan tambahkan kode dibawah ini.
<?php
header('Content-type: application/xml; charset="ISO-8859-1"',true);
$datetime1 = new DateTime(date('Y-m-d H:i:s'));
?>
<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><?= base_url() ?></loc>
<lastmod><?= $datetime1->format(DATE_ATOM); ?></lastmod>
<changefreq>daily</changefreq>
<priority>0.1</priority>
</url>
<?php foreach($post as $item) { $datetime = new DateTime();?>
<url>
<loc><?= base_url('post/'.$item['post_slug']) ?></loc>
<lastmod><?= $datetime->format(DATE_ATOM); ?></lastmod>
<changefreq>daily</changefreq>
<priority>0.5</priority>
</url>
<?php } ?>
</urlset>
Setelah selesai membuat beberapa fungsi di atas, maka kita jalankan aplikasinya dengan menggunakan perintah
php spark serve

Demikian tutorial kali ini di buat, semoga bermanfaat.
Terimakasih.
Same to same copy And Pest from Other website not Working this code