在当今的互联网时代,WordPress已经成为了全球最受欢迎的博客和网站构建平台之一。它的灵活性和强大的扩展性使其成为无数开发者和设计师的首选。你可能还不知道,WordPress的一个强大功能就是自定义字段(Custom Fields)。通过调用自定义字段,你可以在文章、页面或自定义内容类型中添加额外的信息,让你的网站更加丰富和实用。
自定义字段的作用
我们来了解一下自定义字段的作用。简单来说,自定义字段可以让你在WordPress中添加任何你想要的数据。比如,你可能需要为文章添加发布时间、作者信息、分类标签等,或者为产品添加库存数量、价格、描述等。通过自定义字段,你都可以轻松实现。
自定义字段的调用方法
1. 使用主题函数
WordPress提供了一系列主题函数来调用自定义字段。以下是一些常用的函数:
函数名称 | 功能描述 |
---|---|
get_post_meta | 获取指定文章或页面的自定义字段值 |
get_field() | 获取指定文章或页面的单个自定义字段值 |
the_field() | 在模板中输出指定文章或页面的单个自定义字段值 |
get_post_meta_array() | 获取指定文章或页面的所有自定义字段值 |
the_meta() | 在模板中输出指定文章或页面的所有自定义字段值 |
以下是一个示例:
“`php
// 获取文章ID为123的发布时间
$publish_date = get_post_meta(123, ‘publish_date’, true);
echo ‘发布时间:’ . $publish_date;
>
“`
2. 使用短代码
除了使用主题函数,你还可以使用短代码来调用自定义字段。以下是一个示例:
“`php
// 定义短代码
function custom_field_shortcode($atts, $content = null) {
$a = shortcode_atts(array(
‘key’ => ‘your_custom_field_key’,
‘default’ => ‘默认值’
), $atts);
// 获取自定义字段值
$custom_field_value = get_post_meta(get_the_ID(), $a[‘key’], true);
// 判断是否有值,如果没有则输出默认值
if ($custom_field_value) {
return $custom_field_value;
} else {
return $a[‘default’];
}
}
// 注册短代码
add_shortcode(‘custom_field’, ‘custom_field_shortcode’);
>
“`
使用方法:
“`html
价格:
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 Email 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');?> 一般情况下,多数主题下都有author.php这个文件,这既是作者展示页面。如果发现自己正在使用的主题中没有author.php这个文件的话,Wordpress会默认寻找 archives.php文件,如果连archives.php都不可用,Wordpress会接着寻找你的 index.php文件。 想要创建一个author.php文件的话,可以拷贝archives.php或者 single.php的内容。在这两个页面的基础上插入对应的wordpress作者页面调用函数,即可调用相应的作者信息。 常用的作者信息调用函数: the_author显示文章的作者 the_author_description显示文章作者的描述(作者个人资料中的描述) the_author_login显示文章作者的登录名 the_author_firstname显示文章作者的firstname(名) the_author_lastname显示文章作者的lastname(姓) the_author_nickname显示文章作者的昵称 the_author_ID显示文章作者的ID号 the_author_email显示文章作者的电子邮箱 the_author_url显示文章作者的网站地址 the_author_link显示一个以文章作者名为链接名,链接地址为文章作者的网址的链接。 the_author_icq显示文章作者的icq the_author_aim显示文章作者的aim the_author_yim显示文章作者的yim the_author_msn(不推荐使用)显示文章作者的msn the_author_posts显示文章作者已发表文章的篇数 the_author_posts_link显示一个链接到文章作者已发表文章列表的链接 list_authors(不推荐使用)显示blog所有作者和他们的相关信息。完整函数如下: 参数: optioncount:是否显示各作者已发表文章的篇数,可选值为:TRUE和 FALSE(默认值) exclude_admin:是否不列出管理员,可选值为:TRUE(默认值)和 FALSE show_fullname:是否显示各作者的全名,可选值为:TRUE和 FALSE(默认值) hide_empty:是否不显示发表文章数为0的作者,可选值为:TRUE(默认值)和 FALSE feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子 feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空 代表不显示各个作者的发布文章数,列出管理员,显示各作者的全名,显示发布文章数为0的作者和不显示RSS供稿种子。 wp_list_authors显示blog作者列表,如果作者发表过文章,则他的名字将链接到他发表的文章列表中。可定义是否显示其他信息。 参数: optioncount:是否显示各个作者发表文章数,可选值:true和 false(默认值) exclude_admin:是否不显示“admin”用户,可选值:true(默认值)和 false show_fullname:是否显示各个作者的全名,如果不显示,将显示昵称。可选值:true和 false(默认值) hide_empty:是否不显示发表文章数为0的作者,可选值:true(默认值)和 false feed:链接到各个作者发表文章的RSS供稿种子链接名,默认为空,不显示RSS供稿种子 feed_image:供稿种子的图片地址,如果提供此项,则覆盖上面的feed,默认为空 增加用户信息字段: 为了更加简便与安全的增加信息字段,建议将自定义字段添加到“联系信息”中。“联系信息”的字段添加方式非常简单,打开wp-includes/user.php文件,约在1539行可以找到:$user_contactmethods= array代码,在大括号中修改或增加字段。 字段增加的格式为‘数据库字段名’=> __(‘标题说明文字’)修改后的完整代码演示: function _wp_get_user_contactmethods($user= null){ $user_contactmethods= array(); if( get_site_option(‘initial_db_version’)< 23588){ $user_contactmethods= array( ‘aim’=> __(‘支付宝收款地址’), ‘addres’=> __(‘所在地’), ‘job’=> __(‘职业’), ‘qq’=> __(‘QQ’), ‘touxiang’=> __(‘头像url’) ); } return apply_filters(‘user_contactmethods’,$user_contactmethods,$user); } 可以根据需要删除默认的字段,添加自己需要的字段,以达到增加用户选项的目的。 修改此项后,在用户后台的个人资料中也会自动出现对应的输入框,无需再修改其他程序文件。如果需要在作者页面的前端调用显示自定义字段则只需要使用“echo$curauth->xxx;”的PHP语句即可输出对应字段。 附上本文的作者页面范例: 安装author info插件。制作一个小插件,安装后可以直接实现上述代码所说的功能。 在WordPress中,给页面设置副标题并不是原生直接支持的功能,但可以通过一些方法间接实现。 使用自定义字段: 在WordPress的编辑页面界面,可以利用自定义字段来添加一个副标题。这通常需要使用“高级自定义字段”(Advanced Custom Fields)插件或其他类似插件。通过插件,你可以创建一个名为“副标题”的自定义字段,并在编辑页面时填写相应的内容。之后,在页面模板中调用这个自定义字段,即可显示副标题。 编辑页面模板: 如果你熟悉PHP和WordPress模板,可以直接编辑页面的模板文件。在模板中添加一个用于显示副标题的区域,例如一个<h2>或<p>标签。然后,在编辑页面时,通过短代码或自定义HTML来插入副标题内容。这种方法需要一定的技术基础。 使用插件: 虽然直接为页面设置副标题的插件可能不太常见,但你可以寻找一些可能提供类似功能的插件,或者通过插件扩展WordPress的功能来实现这一需求。例如,一些SEO插件可能允许你为页面设置额外的元数据,这些元数据可以用作副标题。在选择插件时,请确保它与你的WordPress版本兼容,并仔细阅读插件文档以了解其使用方法。 在后台设置中添加: 虽然WordPress后台的页面设置中没有直接的“副标题”字段,但你可以尝试在“页面属性”部分添加一些自定义的信息字段。然后,在你的页面模板中调用这些信息来作为副标题显示。这种方法同样需要你对WordPress模板有一定的了解,并可能需要编辑一些PHP代码。 以上方法均需要一定的技术知识或插件支持,如果你不熟悉WordPress的开发或插件使用,建议寻求专业开发者的帮助。
如何自定义wordpress文章的固定链接
如何修改与制作wordpress的作者页面
wordpress给页面设置副标题