gpt4 book ai didi

用于生成站点地图的 Cakephp 插件

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:45:27 24 4
gpt4 key购买 nike

我正在使用 Cakephp 2.4.3。我读过“有 CakePHP 插件能够为您生成站点地图。这样您的 sitemap.xml 文件将按需动态创建并且将永远是最新的。” .我已经搜索过,但我发现的都是旧的 cakephp 版本,该版本没有用,因为它们只会导致错误。

还有什么好的插件吗?

最佳答案

一些插件确实存在:

  1. https://github.com/sdevore/cakephp-sitemap-plugin
  2. https://github.com/smarek/Croogo-Sitemap-2.0
  3. https://github.com/webtechnick/CakePHP-Seo-Plugin

这些是旧的、导致错误的吗?由于每个 CakePHP 站点都可能与下一个站点截然不同,因此我不确定是否存在一种放之四海而皆准的解决方案。

如果您最终要编写自己的站点地图实现,这主要取决于您的站点是否具有:

  • 大量数据库驱动的内容, Controller /操作很少(如典型的 WordPress 风格网站)
  • 大量 Controller /操作驱动的内容(更多是网络应用程序)

在第一种情况下,您希望对您的内容执行查找,并将结果注入(inject)到 xml 模板中,如下所示:http://bakery.cakephp.org/articles/masterkeedu/2008/08/26/automatically-generate-dynamic-sitemaps

对于第二种情况,以下内容可能会有所帮助:我用于开发/测试的组件,其中列出了所有 Controller 及其方法:

<?php //File: app/Controller/Component/CtrlComponent.php
// Component rewritten for Cake2.x, original from : http://cakebaker.42dh.com/2006/07/21/how-to-list-all-controllers/
class CtrlComponent extends Component {
/**
* Return an array of Controllers and their methods.
* The function will exclude ApplicationController methods
* @return array
*/
public function get() {
$aCtrlClasses = App::objects('controller');
foreach ($aCtrlClasses as $controller) {
if ($controller != 'AppController') {
// Load the controller
App::import('Controller', str_replace('Controller', '', $controller));
// Load its methods / actions
$aMethods = get_class_methods($controller);
foreach ($aMethods as $idx => $method) {
if ($method{0} == '_') {
unset($aMethods[$idx]);
}
}
// Load the ApplicationController (if there is one)
App::import('Controller', 'AppController');
$parentActions = get_class_methods('AppController');
$controllers[$controller] = array_diff($aMethods, $parentActions);
}
}
return $controllers;
}
}

实际上,完整的站点地图可能会同时使用这两种方法,您需要考虑站点的公共(public)区域和“私有(private)”区域之间的区别(例如,不包括管理前缀)。

关于用于生成站点地图的 Cakephp 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22397413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com