mikl/mikl-seo

此包最新版本(dev-master)没有可用的许可信息。

为ZF2的SEO模块

dev-master 2012-10-22 08:33 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:02:30 UTC


README

这是一个简单的ZF2模块,根据一个Zend\Navigation\Navigation实例优化您的“页面内”SEO

配置

默认情况下,该模块使用Zend\NavigationDefaultNavigationFactory,但您可以使用自己的导航。

为此,在配置中添加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
        ),
    ),
);