wordpress自定义域函数get_post_custom_values多个值循环
自定义域在Wordpress中有着相当重的份量,很多功能都可以在其中实现,最近有朋友要萨龙龙添加两个功能,一是缩略图使用自定义域来获取(支持外链),二是文章中显示幻灯片,这两个功能都已经在Deephoto主题中实现了,也将集成到Concise主题中,而且文章中显示幻灯片有两种方式:自定义域和简码。
自定义域函数get_post_custom_values是获取当前日志中所有自定义字段值,如果该值不存在或为空都将返回null。
一、使用自定义域来实现缩略图
- function post_thumbnail(){
- global $post;
- if(get_post_meta($post->ID, "imgt", true)) {
- $values=get_post_custom_values( "imgt");
- echo '<img src="'.$values[0].'" alt="'.$post->post_title.'" />';
- } else { if( has_post_thumbnail() ){
-
- } else {
-
- }
- }
- }
通过以上代码获取缩略图就有三种方式:自定义域(img)、特色图像和默认缩略图,使用<?php post_thumbnail(); ?>来获取缩略图。
二、获取自定义域并循环输出
1、获取相同的自定义域并循环输出
- <?php if(get_post_meta($post->ID, "slides", true)) { ?>
- <?php $slides = get_post_custom_values( "slides"); ?>
- <?php foreach ($slides as $key => $value){ ?>
- <article class="swiper-slide slide-post">
- <?php echo "$value"; ?>
- </article>
- <?php }} ?>
通过多添加几个自定义域(slides),就可以循环输出,再通过JS和CSS就可以实现幻灯片效果。
这个方法稍有些麻烦,也增加了数据量,所以我们在一个自定义域中添加多个值来循环输出,效果是一样。
2、获取一个自定义域中的多个值并循环输出
- <?php if(get_post_meta($post->ID, "slides", true)) { ?>
- <?php $slide_arr = get_post_custom_values( "slides");$slide_str = isset($slide_arr[0])? $slide_arr[0]:"";$slides = explode(PHP_EOL,$slide_str);?>//谢谢知言提供的这段代码
- <?php foreach ($slides as $slide){ ?>
- <article class="swiper-slide slide-post">
- <?php echo $slide; ?>
- </article>
- <?php }} ?>
自定义域中的多个值是要分开,可以换行,也可以使用符号,如果是|,字符串为$str, 那就用explode("|",$str),如果是换行,就用explode(PHP_EOL,$str),这样就很方便的循环输出多个值。
不过使用自定义域来实现文章幻灯片时,位置是固定的,因为代码固定,但是管理方便,如果不想用此功能,可以使用代码直接删除全部自定义域。
如果要添加到文章的任意位置,可以使用简码来实现,自定义域中通过explode函数把字符串分割开,在简码中同样可以,例如:[slides img="图片链接1|图片链接2"],与获取的自定义域中的值是一样的,使用explode("|",$str)把img中的值(多张图片链接)分割并循环,使用较方便。
[scbutton link="https://deephoto.salongweb.com/slides" target="blank" variation="blue"]幻灯片演示与自定义域添加[/scbutton]本文原创,作者:萨龙龙,其版权均为萨龙网络所有。
如需转载,请注明出处:https://salongweb.com/get-post-custom-values.html
一个平平常常的人,热爱生活、旅行和摄影,骑行去过西藏,一直计划再去。14年从江西骑行来到大理,现栖居于洱海边,食人间烟火,过简单生活,做简约设计!萨龙网络在2018年9月份就写了一篇《WordPress简约实用的主题选项框架CodestarFramework》文章来介绍Codest…还是在开发导航类主题Slhao的时候遇到的问题,主题使用CodestarFramework专业版选项框架,文章的Metabox选项…Wordpress的菜单都是通过后台菜单来添加设置,很多时候需要添加一些功能到菜单,比如搜索,或者购物车,这时我们就可以使用wp_nav_men…很多网站都会插入优酷或其它网站的在线视频到自己的网站中,默认情况下优酷视频的堆叠顺序并不受CSS样式z-index属性的影响,在视频页面有滚动、…网上已经有很多介绍WordPress多语言的插件了,比如Polylang和WPML等强大的多语言插件,但是只是介绍,很快都是能掌握怎…WooCommerce是WordPress中最强大的商城插件,没有之一。在Slearn主题的开发过程中,需要将课程和商城结合,课程使用…前面我们介绍了wpadd_inline_style函数的使用,并为主题添加自定义样式切换功能,既然有函数可以向站点输出css样式,同时也可以…前段时间已经发布Purity2.0主题更新的文章,主题已经集成了作品展示、商城,通过半个来月的时间把Buddypress+Bbpress社区论坛…在开发吃货主题Chihuo时,要对产品和文章进行筛选,在一级分类下显示所有一级分类和当前一级分类下的所有二级分类,在二级分类下,显示所有一级分类…WordPress获取评论所有主题都是使用wp_list_comments()函数,获取每篇文章的评论是相当的方便实用,唯一的不足是不能通过自…萨龙网络使用Buddypress社区已经很长一段时间,在社区首页动态中可能获取整个网站的最新文章、用户注册,用户动态内容,而自定义文章类型的发布…WordPress默认提供了分类目录,文章归档等小工具,在前台开发中,由于分类目录和文章归档显示的文章数量没有添加标签,导致写样式比较麻烦,如…