laravel - 识别生成的 URL 路径
问题描述
我的 Laravel 应用程序有这个github 包,使用 composer 创建站点地图,但我无法理解这些站点地图的呈现位置。
在点击我的网站的 /sitemap.xml URL 位置后,我很幸运地找到了主站点地图,但我无法找到其他站点地图,例如受软件包支持的 Google 新闻站点地图之一。
负责的功能似乎是这个,但我的编码技能限制了我理解渲染路径:
/**
* Returns document with all sitemap items from $items array
*
* @param string $format (options: xml, html, txt, ror-rss, ror-rdf, google-news)
* @param string $style (path to custom xls style like '/styles/xsl/xml-sitemap.xsl')
*
* @return View
*/
public function render($format = 'xml', $style = null)
{
// limit size of sitemap
if ($this->model->getMaxSize() > 0 && count($this->model->getItems()) > $this->model->getMaxSize())
{
$this->model->limitSize($this->model->getMaxSize());
}
else if ('google-news' == $format && count($this->model->getItems()) > 1000)
{
$this->model->limitSize(1000);
}
else if ('google-news' != $format && count($this->model->getItems()) > 50000)
{
$this->model->limitSize();
}
$data = $this->generate($format, $style);
if ('html' == $format)
{
return $data['content'];
}
return $this->response->make($data['content'], 200, $data['headers']);
}
我使用此功能在 HomeController 上生成我的站点地图:
public function sitemap()
{
$settings_general = Utils::getSettings("general");
if ($settings_general->generate_sitemap == 1) {
// create new sitemap object
$sitemap = App::make("sitemap");
// get all posts from db
$posts = DB::table('posts')->orderBy('created_at', 'desc')->limit(600)->get();
// add every post to the sitemap
foreach ($posts as $post) {
$sitemap->add(URL::to('/') . "/" . $post->slug, $post->updated_at, '1', 'hourly', null, $post->title);
}
$pages = DB::table('pages')->orderBy('created_at', 'desc')->get();
// add every page to the sitemap
foreach ($pages as $page) {
$sitemap->add(URL::to('/') . "/" . $page->slug, $page->updated_at, '1', 'hourly', null, $page->title);
}
$categories = DB::table('categories')->orderBy('created_at', 'desc')->get();
// add every category to the sitemap
foreach ($categories as $category) {
$sub_categories = SubCategories::where('parent_id', $category->id)->get();
$sitemap->add(URL::to('/') . "/category/" . $category->slug, $category->updated_at, '1', 'hourly', null, $category->title);
foreach ($sub_categories as $sub_category) {
$sitemap->add(URL::to('/') . "/category/" . $category->slug . "/" . $sub_category->slug, $category->updated_at, '1', 'hourly', null, $category->title);
}
}
return $sitemap->render('xml');
}
}
解决方案
推荐阅读
- javascript - 为什么使用此 JSON 解析 JSON 响应时出现错误?
- r - 如何在 R 中绘制 3-D 风险平面?
- sql-server - SQL Server 错误:无法继续执行,因为会话处于终止状态
- typescript - TypeScript 类中的命名空间或类别
- python - python中的OS模块如何访问linux中的系统功能?
- python - python - 如何在没有[]包装器的情况下将数组对象转换为元素?
- scala - 从 Scala.js 项目生成 NPM 包
- php - 如何让我的捐赠卷曲与 ipn 一起使用
- java - 用于 Java 和 Groovy 项目的 Gradle 构建
- java - 如何使用 davical 的 caldav4j 获取共享日历列表?