mikl / mikl-seo
此包最新版本(dev-master)没有可用的许可信息。
为ZF2的SEO模块
dev-master
2012-10-22 08:33 UTC
Requires
- php: >=5.3
- zendframework/zendframework: >=2.0.0
This package is not auto-updated.
Last update: 2024-09-28 14:02:30 UTC
README
这是一个简单的ZF2模块,根据一个Zend\Navigation\Navigation实例优化您的“页面内”SEO。
配置
默认情况下,该模块使用Zend\Navigation的DefaultNavigationFactory,但您可以使用自己的导航。
为此,在配置中添加navigation键,并指定您的类名。
此外,MiklSeo使用策略来优化您的HTML以供搜索引擎使用。
MiklSeo\config\module.config.php
return array(
'miklSeo' => array(
'strategies' => array(
'title' => array(
'placement' => 'prepend'
),
'meta' => array(),
),
),
'service_manager' => array(
'factories' => array(
'MiklSeoNavigation' => 'Zend\Navigation\Service\DefaultNavigationFactory', // feel free to change the factory
),
),
);
在module.config.php中定义策略,在strategies键下
- 键:字符串,策略类名
- 值:数组,参数
默认情况下,有2个策略可用
标题
标题策略在找到活动页面时为当前HTML页面添加标题标签。通过指定位置键参数来在根标题之前或之后添加。
return array(
'miklSeo' => array(
'strategies' => array(
'title' => array(
//'tag' => 'myCustomTag',
//'placement' => 'appendOrPrepend',
//'ignoreTag' => 'ignoreSeoTag'
),
),
),
);
默认参数
- tag:标题
- placement:null
- ignoreTag:ignoreTitleSeo
ignoreTag忽略当前节点上的策略
元数据
元数据策略在找到活动页面时为当前HTML页面添加元数据标签。
return array(
'miklSeo' => array(
'strategies' => array(
'meta' => array(
//'tag' => 'myCustomTag',
//'ignoreTag' => 'ignoreSeoTag'
),
),
),
);
默认参数
- tag:元数据
- ignoreTag:noMetaSeo
ignoreTag绕过当前节点上的策略。
示例
从xml导航文件
<?xml version="1.0" encoding="UTF-8"?>
<configdata>
<navigation>
<default>
<home>
<label>Home</label>
<title>Home</title>
<uri>/</uri>
<controller>index</controller>
<action>index</action>
<route>home</route>
<noTitleSeo>true</noTitleSeo>
<meta>
<description>i am the description</description>
<keywords>my, keywords, list</keywords>
<google-site-verification>xxxx---x---x---x--xxxxxx-xx</google-site-verification>
</meta>
<pages>
<create>
<label>create a disk list</label>
<title>create a disk list/title>
<route>create-disk</route>
<meta>
<description>another description.</description>
<keywords>another,keywords, here</keywords>
</meta>
</create>
</pages>
</home>
</default>
</navigation>
</configdata>
从这个module.config.php文件
return array(
'miklSeo' => array(
'strategies' => array(
'title' => array(
'placement' => 'prepend'
),
'meta' => array(),
),
),
'service_manager' => array(
'factories' => array(
'MiklSeoNavigation' => 'Zend\Navigation\Service\DefaultNavigationFactory', // feel free to change the factory
),
),
);
结果
(标题已在之前定义,值为:我的美丽网站)
在home页面
<title>My Beauty Website</title>
<meta>
<description>i am the description</description>
<keywords>my, keywords, list</keywords>
<google-site-verification>xxxx---x---x---x--xxxxxx-xx</google-site-verification>
</meta>
在create页面
<title>create a disk list - My Beauty Website</title>
<meta>
<description>another description.</description>
<keywords>another,keywords, here</keywords>
</meta>
添加自定义策略
您可以创建自定义SEO策略并将其添加到module.config.php中。要添加自定义策略,您的类必须实现MiklSeo\Strategy\StrategyInterface。
interface StrategyInterface{
public function run();
}
您还可以从MiklSeo\Strategy\AbstractStrategy继承以使用默认行为。
public function setTag($tag);
public function getTag();
public function setIgnoreTag($ignoreTag);
public function getIgnoreTag();
并将其添加到module.config.php文件中,在strategy_plugins键下。
return array(
'miklSeo' => array(
'strategies' => array(
'title' => array(
'placement' => 'prepend'
),
'meta' => array(),
),
'strategy_plugins' => array(
'My\Custom\Strategy\Implement\StrategyInterface' => array(
)
),
),
'service_manager' => array(
'factories' => array(
'MiklSeoNavigation' => 'Zend\Navigation\Service\DefaultNavigationFactory', // feel free to change the factory
),
),
);