我们有些网友在使用ZBLOG PHP程序的时候是否有看到大部分的主题是自动获取当前文章标题、关键字和描述的,但是有些朋友对于SEO比较认真,希望类似WP程序的有些插件和功能一样实现自定义设置每一篇文章的标题、关键字和描述,那我们需要对ZBLOG PHP程序主题进行改造。
有在”ZBLOG PHP不用插件实现自定义文章字段功能”文章中提到可以自定义字段到文章发布编辑器的,我们可以效仿这个办法添加三个字段,然后在主题HEADER部分进行调用即可。同时,我们也可以使用老白的办法进行改造,这里我们来看看他的办法。
1、定义函数
function ydmao_cate_seo(){
global $zbp,$cate;
echo '<div id="alias" class="editmod">
<span class="title">当前分类标题、关键词、描述<font color="#FF0000">(不填写则按主题默认显示)</font></span><br />
<strong>标题</strong><br>
<input type="text" style="width:75%;" name="meta_ydmao_catetitle" value="'.htmlspecialchars($cate->Metas->ydmao_catetitle).'"/><br>
<strong>关键词</strong><br>
<input type="text" style="width:75%;" name="meta_ydmao_catekeywords" value="'.htmlspecialchars($cate->Metas->ydmao_catekeywords).'"/><br>
<strong>描述</strong><br>
<input type="text" style="width:75%;" name="meta_ydmao_catemiaoshu" value="'.htmlspecialchars($cate->Metas->ydmao_catemiaoshu).'"/>
</div>';
}
我们定义好之后还需要挂载出来:
Add_Filter_Plugin('Filter_Plugin_Category_Edit_Response','ydmao_cate_seo');//分类自定义字段
2、在头部修改
{if $type=='category'} <!-- 判断在分类页面时候 -->
<title>{if $category->Metas->ydmao_catetitle}{$category.Metas.ydmao_catetitle}{else}{$title}_{$name}{if $page>'1'}_第{$pagebar.PageNow}页{/if}{/if}</title>
<meta name="Keywords" content="{if $category->Metas->ydmao_catekeywords}{$category.Metas.ydmao_catekeywords}{else}{$title},{$name}{/if}" />
<meta name="description" content="{if $category->Metas->ydmao_catemiaoshu}{$category.Metas.ydmao_catemiaoshu}{else}{$category.Intro}_{$name}{if $page>'1'}_当前是第{$pagebar.PageNow}页{/if}{/if}" />
{else}
这里是zblog模板原有的标题关键词描述等代码
{/if}
这里我们将头部调用出来。
3、将tag也加入SEO功能
//tag SEO
function ydmao_tag_seo(){
global $zbp,$tag;
echo '<div id="alias" class="editmod">
<span class="title">当前TAG标题、关键词、描述<font color="#FF0000">(不填写则按主题默认显示,注:此功能为当前模板自带)</font></span><br />
<strong>标题</strong><br>
<input type="text" style="width:75%;" name="meta_ydmao_tagtitle" value="'.htmlspecialchars($tag->Metas->ydmao_tagtitle).'"/><br>
<strong>关键词</strong><br>
<input type="text" style="width:75%;" name="meta_ydmao_tagkeywords" value="'.htmlspecialchars($tag->Metas->ydmao_tagkeywords).'"/><br>
<strong>描述</strong><br>
<input type="text" style="width:75%;" name="meta_ydmao_tagmiaoshu" value="'.htmlspecialchars($tag->Metas->ydmao_tagmiaoshu).'"/>
</div>';
}
挂载出来:
Add_Filter_Plugin('Filter_Plugin_Tag_Edit_Response','ydmao_tag_seo');//tag自定义字段
4、然后模板修改
{if $type=='tag'}
<title>{if $tag->Metas->ydmao_tagtitle}{$tag.Metas.ydmao_tagtitle}{if $page>'1'}_第{$pagebar.PageNow}页{/if}{else}{$tag.Name}_{$name}{if $page>'1'}_第{$pagebar.PageNow}页{/if}_{$subname}{/if}</title>
<meta name="Keywords" content="{if $tag->Metas->ydmao_tagkeywords}{$tag.Metas.ydmao_tagkeywords}{else}{$tag.Name}{/if}">
{if $tag.Intro || $tag->Metas->ydmao_tagmiaoshu}<meta name="description" content="{if $tag->Metas->ydmao_tagmiaoshu}{$tag.Metas.ydmao_tagmiaoshu}{else}{$tag.Intro}{/if}">{/if}
{/if}
根据实际模板的情况,我们需要修改成符合自己当前主题的ID,以及函数对应。
参考文章:
1、https://www.itbulu.com/zbp-self-metas.html
2、http://www.yzktw.com.cn/post/75.html