Генерация Sitemap с помощью Codeigniter

Мне нужно создать sitemap в Codeigniter приложение. Я нашел несколько библиотек, но все они устарели и есть ошибка.

мне действительно нужна отдельная библиотека для этого?

Я хочу знать лучший способ создания sitemap в Codeigniter.

4 ответов


вы можете использовать мой код:

контроллеры / seo.в PHP

Class Seo extends CI_Controller {

    function sitemap()
    {

        $data = "";//select urls from DB to Array
        header("Content-Type: text/xml;charset=iso-8859-1");
        $this->load->view("sitemap",$data);
    }
}

вид/Карта сайта.в PHP

<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc><?= base_url();?></loc> 
        <priority>1.0</priority>
    </url>

    <!-- My code is looking quite different, but the principle is similar -->
    <?php foreach($data as $url) { ?>
    <url>
        <loc><?= base_url().$url ?></loc>
        <priority>0.5</priority>
    </url>
    <?php } ?>

</urlset>

добавить строку в config / routes.в PHP

$route['seo/sitemap\.xml'] = "seo/sitemap";

Извините, если есть некоторые ошибки в коде, я сделал его специально для вас. Если есть ошибки, вы можете легко исправить их, поняв принцип.


должны установить заголовок :

<?php header('Content-type: text/xml'); ?>
<?= '<?xml version="1.0" encoding="UTF-8" ?>' ?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <url>
        <loc><?= base_url();?></loc> 
        <priority>1.0</priority>
    </url>
    <!-- My code is looking quite different, but the principle is similar -->
    <?php foreach($data as $url) { ?>
    <url>
        <loc><?= base_url().$url ?></loc>
        <priority>0.5</priority>
    </url>
    <?php } ?>
</urlset>

настоятельно рекомендуется добавить ссылку sitemap к роботам.txt вот так:

Sitemap: http://www.yoursite.com/seo/sitemap

Я написал модель CodeIgniter, которая позволила вам вызывать функции из контроллера sitemap и выплевывать XML, когда вы все закончите кормить sitemap.

Не стесняйтесь смотреть и повторно использовать модель CodeIgniter:

https://github.com/alphabase/CodeIgniter-Sitemap-Generator