如何在 Codeigniter 中创建动态站点地图
How to create dynamic sitemap in Codeigniter
如何在 Codeigniter 中创建动态站点地图。我在 Controller 中创建了一个名为 Sitemap.php
的 php 文件,并创建了一个名为 sitemap.php
的视图,一切正常,但显示的结果不是实际的 XML 文件,如图在下图中。
Codeigniter Sitemap.php 文件
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Sitemap extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->model('Constant_model');
$this->load->helper('xml');
}
public function index()
{
$query= $this->db->query("SELECT url_slug FROM snippets UNION SELECT tag_name FROM tags");
$data = $query->result();
$data['items'] =$data;
$this->load->view('sitemap', $data);
}
}
查看 -> sitemap.php 文件
<?php echo'<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><?php echo base_url();?></loc>
<priority>1.0</priority>
<changefreq>daily</changefreq>
</url>
<!-- Sitemap -->
<?php foreach($items as $item) { ?>
<url>
<loc><?php echo base_url()."item/".$item->url_slug ?></loc>
<priority>0.5</priority>
<changefreq>daily</changefreq>
</url>
<?php } ?>
您的控制器中缺少 header
设置,请像这样放置 header
Class Sitemap extends CI_Controller {
function sitemap()
{
$query= $this->db->query("SELECT url_slug FROM snippets UNION SELECT tag_name FROM tags");
$data = $query->result();
$data['items'] =$data;
header("Content-Type: text/xml;charset=iso-8859-1");
$this->load->view('sitemap', $data);
}
}
您的视图文件似乎没有问题。
更多详情Refer this link
我遇到了同样的问题,在你的代码中需要关闭 </urlset>
在你看来。
如何在 Codeigniter 中创建动态站点地图。我在 Controller 中创建了一个名为 Sitemap.php
的 php 文件,并创建了一个名为 sitemap.php
的视图,一切正常,但显示的结果不是实际的 XML 文件,如图在下图中。
Codeigniter Sitemap.php 文件
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Sitemap extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->database();
$this->load->model('Constant_model');
$this->load->helper('xml');
}
public function index()
{
$query= $this->db->query("SELECT url_slug FROM snippets UNION SELECT tag_name FROM tags");
$data = $query->result();
$data['items'] =$data;
$this->load->view('sitemap', $data);
}
}
查看 -> sitemap.php 文件
<?php echo'<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc><?php echo base_url();?></loc>
<priority>1.0</priority>
<changefreq>daily</changefreq>
</url>
<!-- Sitemap -->
<?php foreach($items as $item) { ?>
<url>
<loc><?php echo base_url()."item/".$item->url_slug ?></loc>
<priority>0.5</priority>
<changefreq>daily</changefreq>
</url>
<?php } ?>
您的控制器中缺少 header
设置,请像这样放置 header
Class Sitemap extends CI_Controller {
function sitemap()
{
$query= $this->db->query("SELECT url_slug FROM snippets UNION SELECT tag_name FROM tags");
$data = $query->result();
$data['items'] =$data;
header("Content-Type: text/xml;charset=iso-8859-1");
$this->load->view('sitemap', $data);
}
}
您的视图文件似乎没有问题。
更多详情Refer this link
我遇到了同样的问题,在你的代码中需要关闭 </urlset>
在你看来。