WordPress,作为全球最受欢迎的博客平台和内容管理系统,凭借其强大的功能和灵活性,吸引了无数网站开发者。在WordPress的世界里,循环标签(Loop Tags)是构建个性化网站的重要工具。本文将深入探讨WordPress循环标签的用法、技巧和注意事项,帮助你更好地利用这一功能。
一、什么是WordPress循环标签?
WordPress循环标签,顾名思义,就是用于遍历和展示数据库中内容(如文章、页面、分类、标签等)的标签。通过使用循环标签,你可以轻松地将数据库中的内容展示在页面或模板中,实现个性化定制。
二、WordPress循环标签的基本用法
WordPress循环标签主要分为以下几类:
1. 文章循环标签(Post Loop Tags):
``:循环遍历文章,每次循环都调用`the_post()`函数获取当前文章信息。
``:输出文章标题。
``:输出。
``:输出文章链接。
2. 分类循环标签(Category Loop Tags):
``:循环遍历分类下的文章。
``:输出文章所属分类。
`ID, ‘category’, ”, ”, ” ); ?>`:输出文章所属分类的链接。
3. 标签循环标签(Tag Loop Tags):
``:循环遍历标签下的文章。
``:输出文章所属标签。
`ID, ‘post_tag’, ”, ”, ” ); ?>`:输出文章所属标签的链接。
4. 页面循环标签(Page Loop Tags):
``:循环遍历页面。
``:输出页面标题。
``:输出页面内容。
三、WordPress循环标签的技巧
1. 分页显示:
使用``标签实现文章、分类、标签等内容的分页显示。
2. 自定义模板:
在主题文件夹中创建自定义模板文件,如`single.php`、`category.php`等,对循环标签进行个性化定制。
3. 条件判断:
使用``等条件判断标签,实现更复杂的逻辑处理。
4. 缓存:
使用缓存技术提高网站加载速度,如使用WordPress的`the_cache()`函数。
四、WordPress循环标签的注意事项
1. 避免无限循环:
在使用循环标签时,注意检查是否正确调用``和``标签,避免无限循环。
2. 性能优化:
避免在循环标签中使用过多的数据库查询,优化查询语句,提高网站性能。
3. 兼容性:
注意WordPress版本更新对循环标签的影响,确保代码兼容性。
WordPress循环标签是构建个性化网站的重要工具,掌握其用法和技巧,可以帮助你轻松实现各种功能。在开发过程中,注意避免无限循环、优化性能和确保兼容性,让你的网站更加高效、稳定。希望本文能对你有所帮助,祝你在WordPress的世界里越走越远!
wordpress如何实现标签文章列表
1.你需要创建一个widget,在谷歌里搜索widget api,找到官方文档,文档里有创建widget的示例代码
2.在widget的public function form($instance)函数中定义一个下拉列表,里面列出所有的tag标签,tag标签可以用get tags()函数获得,这样你就能在widget里面选择要显示哪个tag下的文章了。记得在public function update函数中保存选择的tag
3.在public function widget($args,$instance)中写上你要显示的内容。从你截图看,第一篇文章显示特色图像(调用the_post_thumbnail()),标题和摘要。后面的现实列表。
你可以从widget参数获得要选择哪个tag标签下的文章,接下来用get_posts()函数或者WP Query获取文章显示就行了
如何使wordpress的标签自动变为网站文章的内链
其实内部链接是很好理解的,那么我们就一起来学习下相关知识点吧:
与外部链接(即反向链接)相反,内部链接是指同一网站域名下的内容页面之间互相链接。如频道、栏目、终极内容页之间的链接,乃至站内关键词之间的Tag链接都可以归类为内部链接,因此内部链接我们也可以称之为站内链接,对内部链接的优化其实就是对网站的站内链接的优化。
网站做内部链接能起到的作用:
我们都知道外部链接可以提高网站权重,进而促使排名靠前,那么内部链接又有什么作用呢?反向链接的重要性,很多SEO项目其实到了后期就是外部链接的交换与维护,由此也可见外部链接对网站排名的重要性。但是很多SEO将外部链接当成网站优化的全部,这其实是非常错误的,因为合理地安排内部链接,尤其是大型网站,合理的内部链接部署策略同样可以极大地提升网站的SEO效果。作为SEO,我们不应该忽略站内链接所起的巨大作用。
如何使wordpress的标签自动变为网站文章的内链
加快收录
正确地对网站的内部链接进行SEO优化,站点中网页间的互链有助于提高搜索引擎对网站的爬行索引效率,有利于网站的收录。一个页面要被收录,首先要能够被搜索引擎的蜘蛛爬行到,蜘蛛的爬行轨迹是顺着一个链接到另一个链接,想让搜索引擎蜘蛛更好地爬行,一般都需要通过反向链接来引导,但是内页的爬行就需要良好的内部链接了,如果不注意形成死链断链,蜘蛛就无从爬起,也就谈不上良好收录了。我们交换链接很少会涉及到具体的内容页面,即使别人给你的主动反向链接,一般也很少链到你的分类页或内容页,所以只有做好内部链接才能让搜索引擎的蜘蛛遍历并抓取网站的链接。长尾关键词的链接资源几乎都来自内链。
优化排名
良好的网站内部链接策略能推动网站的排名。在搜索引擎面前,一个链接就代表一张投票,外部链接就是网站之间的互相投票,而内部链接则代表了网站内的各页面互相投票。通过大量而适度的内部链接来支持某一个具体页面,有助于该内容页主题的集中,促使搜索引擎识别出哪些页面在你的网站中是重要的,进而推动该页面的排名。因此在搜索引擎优化的过程中,网站当中哪些网页参与了主要关键词的排名竞争,我们一般就会采取重点突出主要关键词的内部链接,从而使该主题中的核心关键词在搜索引擎中更具有排名优势。举个例子,我们将本SEO博客内容页中的所有带SEO的文字都链接向首页,那么首页在参与“SEO”这个关键词的排名竞争上就会更加有优势。
我们可以先推排名靠前的文章,然后在循环推排名稍后的文章。比如我们发现博客中某一篇文章通过某一关键词搜索,排名在第10位。那么就可以在新发布的文章中,集中更多的链接链向这篇文章,把它的排名推到前三位。这个时候,要注意有时候你文章所谈论的某一主题的相关文章可能不止一篇,那么就应该通过搜索引擎的搜索,确定占据排名优势的那篇文章,进而集中优势内链,一直到把这篇文章推到排名第一位置。当这个关键词推到排名第一了,就应该改换关键词,再次通过内部链接来进行推动,比如当“SEO”这个关键词排到第一了,那么就应该推动“搜索引擎优化”这个关键词,在新的文章内容页出现“SEO”这个关键词的时候,就可以不说“SEO”,改说“搜索引擎优化”。
加强PR传递
内部链接还有助于PR的传递,平均站内网页的权威度。内部链接也是被搜索引擎计算到“反向链接”的范围之内的,获得内部链接越多的页面通常获得的PR就会越高。先举个简单的例子来证实一下,合理的内部链接的网站几乎不需要与任何网站交换友情链接,PR即可达到3以上,就是这个道理,这也是为什么往往大型网站的PR比较高的原因。一些文章页面的收录情况或者PR传递不是很理想的话,我们就可以有意识地多做一些内部链接过去,这样可以促进收录和提高排名。
提高客户体验度
内部链接可以提高用户体验度,增加PV,提升访问量。表现为相关文章,热门文章,最新文章等的内部链接很容易提高用户的访问体验,部署优秀的内部链接越多,页面被点击的机会就越大,PV的增加越显而易见。这些相关文章的内部链接不能滥用,应该尽量链接到相似主题的文章,否则就谈不上提升用户的体验度了。
PS:以上关于内部链接的叙述摘自百度百科。有不正确的地方欢迎在下面留言讨论。
好了,言归正传,我们都知道wordpress博客系统以插件的扩展性能闻名世界,基本上很多需求通过插件就可以实现了。比如使用dx-seo插件或者WP Keyword Link插件都带有自动锚文本的功能。只不过这个插件里面要手动添加,如果对文章的关键字进行手动添加链接,那样对我们来说太麻烦了,而且在标签关键词很多的情况下我们是记不住的。所以我们能尽量不使用插件就不使用插件。那怎么在不使用插件的情况下如何使wordpress的文章标签自动变为网站文章的内链呢?其实我们只需要在主题目录下的functions.php文件中添加一段代码就可以实现了。
打开我们主题的functions.php文件添加如下代码:
/*自动为文章内的标签添加内链开始*/
$match_num_from= 1;//一篇文章中同一个标签少于几次不自动链接
$match_num_to= 1;//一篇文章中同一个标签最多自动链接几次
function tag_sort($a,$b){
if($a->name==$b->name) return 0;
return( strlen($a->name)> strlen($b->name))?-1: 1;
}
function tag_link($content){
global$match_num_from,$match_num_to;
$posttags= get_the_tags();
if($posttags){
usort($posttags,”tag_sort”);
foreach($posttags as$tag){
$link= get_tag_link($tag->term_id);
$keyword=$tag->name;
$cleankeyword= stripslashes($keyword);
$url=”<a href=\”$link\” title=\””.str_replace('%s',addcslashes($cleankeyword,'$'),__('View all posts in%s')).”\””;
$url.=' target=”_blank”';
$url.=”>”.addcslashes($cleankeyword,'$').”</a>”;
$limit= rand($match_num_from,$match_num_to);
$content= preg_replace('|(<a[^>]+>)(.*)('.$ex_word.')(.*)(</a[^>]*>)|U'.$case,'$1$2%&&&&&%$4$5',$content);
$content= preg_replace('|(<img)(.*?)('.$ex_word.')(.*?)(>)|U'.$case,'$1$2%&&&&&%$4$5',$content);
$cleankeyword= preg_quote($cleankeyword,'\'');
$regEx='\'(?!((<.*?)|(<a.*?)))('.$cleankeyword.')(?!(([^<>]*?)>)|([^>]*?</a>))\'s'.$case;
$content= preg_replace($regEx,$url,$content,$limit);
$content= str_replace('%&&&&&%', stripslashes($ex_word),$content);
}
}
return$content;
}
add_filter('the_content','tag_link',1);
/*自动为文章内的标签添加内链结束*/
如何自定义wordpress文章的固定链接
WordPress是一款开源网站建设程序,因其强大的功能和可扩展性而大受欢迎。关于WordPress扩展,主要是其插件众多,可以使用不同功能插件来扩展网站需求。WordPress所有固有的内容类型非常有限,毕竟其开始是以博客系统为基础的。对于像企业站需要的产品类型,电影站需要的国家属性等,显示不便。现在推荐一款自定义内容类型/字段分类法插件–Pods可以扩展你所需要的内容类型。
pods是一款用在 WordPress上的自定义内容类型的插件,但是 pods拥有的功能却完全不限于此。pods能够扩展现有的内容类型,比如为用户资料(user)增加一个“电话”字段。此外,它还有权限管理功能,类似于“members”插件。此外,还有高级自定义内容类型,改变“标题”这个字段名称。再此外,它还有内容关系的功能。
这篇文章我们除了介绍 pods的使用方法以外,还会介绍内容类型的列表页,内容页的制作,pods字段的前台模板调用,增加内容类型到菜单等等。
扩展已有
WordPress默认有三大内容类型:文章(posts)、页面(page)、媒体(attachment),可能“用户(user)”也算一个内容类型,因为“用户”也可以扩展。默认的分类法有:分类目录(category)、标签(tag)。默认的内容类型和分类法在项目中字段经常不够用。
扩展文章字段
1、安装好 pods后,点击“pods管理-添加”,点击“扩展已有”、选择“内容类型(文章、页面,等等)”,下方选择“文章”,点击“下一步”。
2、点击“添加字段”,比如添加一个“文章来源”的文本类型的字段,这里有几个选框。
代表的含义为:
标签:显示在发布时候的名称,可以为中文。
名称:内部使用,存在数据库里的名称,可用于模板调用,只能为字母、数字、下划线,不能以数字开头。
描述:发布时对字段的简要说明,选填。
字段类型:字段的类型,如,文本框、文本区域、文件等等。
选项:该字段是否为必填。
3、点击“添加字段”,完成添加,点击“Save Pod”保存添加。
这个时候去发布文章看看,在下方就多了个文章来源字段了。快点去用同样的方法可以为页面、媒体、用户、评论添加自定义字段吧。
创建新的
创建新的内容类型
进入到 pods的添加界面,选择“创建新的”,接下来选择“自定义内容类型”。
标签填写内容类型名称,可以为中文,比如填写个“电影”,点击下面的“高级”,在 pod name填写内容类型的机读名称,点击“下一步”,完成一个自定义内容类型的创建,你可以在左边栏找到“电影”这个内容类型。
为自定义内容类型添加字段。新创建的自定义内容类型,默认拥有“文章”这个内容类型的所有字段,比如标题、内容、日期等等,我们是在这些基础上添加新的需要的字段,比如现在添加一些字段:海报、地区、时长、年份等等。再去发布“电影”,你会发现下方多了刚刚添加的这些字段。
创建好自定义内容类型后,你会发现还有很多标签页:“管理字段”、标签、管理界面、高级选项。
标签:在后台显示的标签,根据需要修改。
管理界面:管理内容类型在后台的显示,尝试把菜单位置改为更大的值试试看。
高级选项:对自定义内容类型的设置,请把“拥有归档”勾上。
创建自定义分类法
打开 pods的添加界面,选择“创建新的”,接下来选择“自定义分类法”。
标签填写分类法名称,可以中文,比如填写“电影类型”,点击下面的“高级”,在 pod name填写分类法的机读名称,点击“下一步”,完成一个自定义分类法的创建。
创建完成以后,有几个标签页,主要关注以下几个:
高级选项中,“层级”,表示该分类法是否有层级关系,打上勾相当于“分类目录”分类法,不打钩相当于“标签”分类法,我建议打上勾。“相关内容类型”,为这个分类法应用到哪一个内容类型,比如我这里,勾上了“电影”。我在发布电影的时候,在右边栏就可以有电影类型选择了。
其他字段:这是为自定义分类法添加字段,这个按照需要开启,比如你想为电影类型中的科幻片分类添加一个略缩图字段等等。
创建自定义设置页面—制作主题选项
有没有觉得做主题的时候,为主题添加选项比较麻烦,pods有个超简单的方法,使用自定义设置页面轻松搞定。
打开 pods的添加界面,选择“创建新的”,接下来选择“自定义设置页面”,标签填写页面名称,可以使用中文,比如填写“主题选项”,菜单位置由自己选:在设置菜单、外观菜单下,新菜单,我这里选择添加到外观菜单。点击下面的“高级”,在 pod name填写自定义设置页面的机读名称,点击“下一步”,这样就完成了一个自定义页面的创建。
创建完成以后,可以去添加一些字段,比如我添加了:网站 logo、网站标题、网站关键字、网站描述、统计代码、网站备案号字段,要注意字段类型。
接下来保存后看看你的左边栏对应的菜单位置吧。
好了,pods的基础功能就这么一些,这些功能网上很多插件都能实现,其实更重要的内容,还在于他的组件,pods的组件给 pods扩充了非常多的功能,这才是 pods真正的强大之处。
pods组件
高级自定义内容类型
进入“pods管理-组件”,启用“Advance Content Type”。
这个时候,到 pods的添加页面,多了一项“高级内容类型”,选择它,这里我重新建立一个电影内容类型。点击“下一步”完成创建。
创建完成之后,会发现默认有了一些字段,这就是 WordPress默认的字段,你可以修改或者删除它。
编辑好字段以后,再去看看其他标签页。下面主要介绍重要的设置:
“管理界面”的“管理界面样式”,可以自己写个 WordPress管理后台页面。
“高级选项”的“标题字段”,如果修改了标题字段,或者想要改变标题字段,请在这里选择。
高级内容关系
进入“pods管理-组件”,启用“Advance Relationships”,这个时候在添加内容关系字段以后,你可以看到多了几行,这些高级的内容关系,可以创建更加复杂的内容关系。
权限与角色管理
进入“pods管理-组件”,启用“Roles and Capabilities”,如果你用过 members插件,你会发现这功能和 members功能很相似,一样的强大。可以对所有的权限分角色的管理,可以添加、编辑、删除用户角色。
更多组件
pods管理后台还有其他实用的组件,更多的组件功能,不一一介绍,看组件名字大概能清楚他的功能。pods官方有提供其他组件,一些是单独的插件,一些是配合 pods工作的组件。
前端调用
模板命名
我发现,虽然很多人都会用自定义内容类型,但是内容类型的列表页不好做,即使做好,又该怎么放到菜单上显示出来,比如将“电影”列表页放在菜单中,自定义内容类型绑定了一个自定义分类法,又该怎么去显示分类法中某个分类下的文章,比如“科幻片”这个电影分类。
模板命名规则:
自定义内容类型模板命名规则:archive-{post_type_name}.php如 archive-movies.php
自定义分类法模板命名规则:taxonomy-{taxonomy_name}.php如 taxonomy-movie_type.php
自定义内容类型内容页模板命名规则:single-{post_type_name}.php如 single-movies.php
将内容类型加入到菜单,需要安装一个插件“Custom Post Type's Archive in WP Nav Menu”,安装好之后,没有任何设置界面,进入到“外观-菜单”,你可以发现菜单编辑区域的左边有了一个custom post type archives,现在内容类型就在这里了,如果你发现内容类型不在这,那就请到 pods的内容类型管理界面的高级选项中确认你的“拥有存档”这个选项已经打上勾了。
注:可能由于缓存问题,如果发现添加了内容类型到菜单后,前台点击内容类型的菜单出现404页面,请到“设置-固定链接”,点击一下保存即可。
数据调用
后台配置好,其实最主要的,还是要能够显示出来才是最重要的,pods的显示方法有三种:
短代码方式显示,短代码请参考 pods短代码文档,配合 pods官方提供的 magic tags。
利用 pods的“page”和“template”组件,这两个组件可在 pods组件中开启,请参考文章。
利用模板函数,即将重点介绍。
这里只介绍模板函数方式调用 pods数据,因为这才是做主题开发时能使用的东西。
输出函数
Pods显示数据函数
pods_field_display($pod,$post->ID,'$field)
关于该函数的文档,请查看 pods官方文档。
function pods_field_display($pod,$id= false,$name= null,$single= false)
参数数据类型备注
$pod(string) Pod name,即为 pods机读名称
$id(mixed)(选填)某篇文章ID或slug,以查询该篇文章数据
$name(string|array)字段名称,或者关联数组的参数
$single(boolean)(选填)是否以数组的形式返回
图像字段输出函数
pods_field_display()不会真正的显示出一张图片,而是显示出图片的 URL,pods特地为图片显示定义了一个函数:
pods_image($image,$size='thumbnail',$default= 0,$attributes='',$force= false)
关于该函数文档,请查看官方文档。
function pods_image($image,$size='thumbnail',$default= 0,$attributes='',$force= false)
参数数据类型备注
$image(array|int|string)图片字段的数组,或ID,或guid
$size(string|array)图片大小样式
$default(int)如果图片不存在,则显示该图片$default
$attributes(string|array)图片属性(内部通过 wp_get_attachment_image获取)
$force(boolean)强制规定大小
图片有单张图片和多张图片,如不清楚单张与多张,请到 pods添加字段查看。如果字段是多张图片,那么会返回一个数组,所以,输出图像字段的代码为:
单张图片字段示例代码:
<?php
echo pods_image( get_post_meta($post->ID,$image_field_name, true),’original’);
?>
多张图片字段:
<?php
$images=get_post_meta($post->ID,’images’);
foreach($images as$image)
{
echo pods_image($image,’original’);
}
?>
输出字段注意事项:
yes/no字段:后台勾选“是”输出 1,不勾选输出空值。
Code字段:可执行 php脚本代码,输出 php代码执行结果。
Website字段:本人无法输出该字段内容,请勿使用。
因为 pods自定义字段也属于 WordPress内部自定义字段,所以依然可以使用 WordPress的 get_post_meta()输出,但是也并不是所有字段都能输出,经过测试,可直接使用 get_post_meta()函数输出的字段有:
Phone
Password
Pptext
Date time
Pnumber
Currency
Color
对于其他字段,请使用 pods_field_display();
模板代码段示例
在主循环中
代码示例:
<?php if(have_posts()):while(have_posts()): the_post();?>
<h1>
<a href=””>
<?php the_title();?>
</a>
</h1>
<!–标题–>
<div>
<div>
<span>年份:</span>
<?php echo pods_field_display('movie',$post->ID,'time');//显示(年份)time字段?>
</div>
<div>
<span>区域:</span>
<?php echo pods_field_display('movie',$post->ID,'zone');//显示(区域)zone字段?>
</div>
<div>
<span>时长:</span>
<?php echo pods_field_display('movie',$post->ID,'how_long');//显示(时长)how_long字段?>
<span>分钟</span>
</div>
<div>
<span>海报:</span>
<?php echo pods_image( get_post_meta($post->ID,'poster', true),'original');//显示海报字段?>
</div>
</div>
<!–显示自定义字段–>
<div>
<?php the_excerpt();?>
</div>
<!–内容摘要–>
<?php endwhile;endif;?>
万能循环示例代码
<?php query_posts('showposts=5&post_type=movie');while(have_posts()): the_post();?>
<h1>
<a href=””>
<?php the_title();?>
</a>
</h1>
<!–标题–>
<div>
<div>
<span>年份:</span>
<?php echo pods_field_display('movie',$post->ID,'time');//显示(年份)time字段?>
</div>
<div>
<span>区域:</span>
<?php echo pods_field_display('movie',$post->ID,'zone');//显示(区域)zone字段?>
</div>
<div>
<span>时长:</span>
<?php echo pods_field_display('movie',$post->ID,'how_long');//显示(时长)how_long字段?>
<span>分钟</span>
</div>
<div>
<span>海报:</span>
<?php echo pods_image( get_post_meta($post->ID,'poster', true),'original');//显示海报字段?>
</div>
</div>
<!–显示自定义字段–>
<div>
<?php the_excerpt();?>
</div>
<!–内容摘要–>
<?php endwhile;wp_reset_query();?>
自定义设置页面(调用主题选项数据)
请注意$id参数为 pods-settings-{slug_name},比如我的 pods name为 theme_option,那么$id的实参应该为'pods-settings-theme_option'。
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_logo');?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_title');?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_keyword');?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_description');?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_tongji');?>
<?php echo pods_field_display('theme_option','pods-settings-theme_option','site_beian');?>