WordPress短代码结合实际需求开发总结

因网站业务需求,这段时间鸡西网站设计一直在完善各客户网站的基本功能。综合鸡西网客服人员每天回答的咨询问题的实际情况,很多问题的重复性与难易度只要通过网站就可以了解到。所以决定写一个能够把问题精确分类,统一管理,多页面调用的FAQ功能。
考虑网站使用的是Wordpress程序,可以充分利用自身提供的短代码ShortCode
API来实现,下面鸡西网为大家介绍一下 ShortCode,也送给那个肉体是醒了,可是灵魂还在做梦的自己——————但忆初强记,谁知晚健忘。生年不满百,常怀千岁忧。昼短苦夜长,何不秉烛游。
1、ShortCode简介
ShortCode可以让开发者通过以函数的形式创建宏内容来生成内容,或许这个概念看上去有点模糊,但实际上它是一个很简单而实用的功能,只要会编写基本的PHP函数,即可使用ShortCode,下文会以实际的例子来说明ShortCode的使用方法。
2、ShortCode形式
[myshortcode]Some Content[/myshortcode] // 封闭标签 [myshortcode] // 自闭标签 [myshortcode title="example"] // 带有一个参数的自闭标签 [myshortcode]<p><a href="#"><span>内容</span></a></p>[/myshortcode] // 标签内可以填写文本或 HTML [myshortcode]Content [myshortcodesecond] more content[/myshortcodesecond] // 也可以嵌套使用标签
3、ShortCode例子
效果演示 – 常见问题
请问定制网站的流程是什么样的?
您好,请参考我们的开发流程页面,有详细的流程说明的。请问如何付款及付款方式是什么?
您好,我们使用业界通用的预付款方式,在收到客户支付的定制款项的50%预付款后,开始网站的定制设计开发;另外,我们支持多种方便快捷的付款方式,具体请与在线客服联系获知。你们可以先提供网站设计效果图再付款吗?
您好,我们所有的定制项目都是采用预付款制的,收到客户的50%预付款后,我们将在尽快根据客户的定制需求,设计独一无二的网站首页风格,客户满意后,即进行网站的代码编写工作。请问网站定制的价格还能再少吗?
您好,我们的定制服务参考价格仅供客户参考,具体的定制价格根据客户提交的定制需求难度而定,具体价格可联系我们的在线客服面议。请问你们提供的售后服务是多长时间,会另外收费吗?
您好,售后服务和技术支持都是长期提供的,对于小的修改等服务都会免费提供,大的修改根据难度定价。请问可以删除后台主题设置里的版权信息吗?
您好,网站后台主题设置中的底部版权信息是维护七网科技和客户双方服务的必须内容,是我们提供售后服务和技术支持的保证,而且对网站使用没有任何影响,不能删除或隐藏;如客户一定要去除版权信息,需额外支付版权费用128元/套。请问购买的主题是一次性付费吗?
您好,我们所有的在售主题程序都是一次性付费的,一次付费永久使用,可以免费升级和获取主题相关的相关售后服务。请问购买的主题能退货吗?
您好,我们所有的在售主题程序都是互联网虚拟产品,和其他网络虚拟产品一样,一旦购买,不能退款。请问你们在哪些城市提供此类服务?
您好,我们的服务客户分布在国内和国际的不同区域;值得提醒的是我们现在不提供地面服务,都是通过安全的网络电子商务模式进行的。请问你们有代理商吗?
您好,我们暂时不提供代理销售服务,也请各买家认准唯一官方网站7VNET.COM,以免造成不必要的损失,获得满意的长期售后服务和技术支持。购买的主题有域名限制吗?
您好,为了更好地为官方正版客户提供售后服务支持,本站在售全站网站主题,七网科技保留主题的设计版权,主题只且只能用于双方协议的网站/博客使用。主题不得用作他用、不得以任何形式转卖他人使用;用户购买的主题程序均在指定域名(客户购买主题时填写或提供的)下实现;购买的主题程序如若用于其他多个不同的网站/博客,请及时与七网科技联系协商解决(每增加一个网站使用,须支付对应主题设计费用的 30%,否则七网科技不再负责其网站的后期服务)。用户购买的主题程序不提供域名变更服务,只能新增域名扩展支持。用户购买主题即视为接收该条件并即时生效。购买主题没有域名怎么办?
您好,如果在购买本站主题时,可坑暂时确定的网站域名,可暂时不提供,我们会照样提供客户没有任何使用和优化限制的主题程序(但您的网站域名必须在1-2个月时间内补充提交给我们作为今后获取官方售后服务的服务凭证,如果期间无法及时提供网站域名,主题使用时间将会受限,由此导致的一切网站问题和损失本站不承担任何责任)。如果有人倒卖你们的主题怎么办?
您好,非常感谢您的关注,首先要说明的是,对于2010年6月以后更新升级的主题程序不存在被倒卖的现象(因为我们和客户之间有一对一的保密承诺)。对于出现的极个别非法倒卖的主题,都是个别客户购买的具有1-2年使用年限的老旧主题程序,到期后,网站将自动关闭,无法运行,同时也不是本站在售的最新版本,对于诸多网站特色功能、特色的高级搜索优化都没有。对于这极个别的无良客户,为了区区几块钱坑害网站用户扰乱市场秩序,我们已经积极地做出了应对措施,不在对这几个客户的主题进行更新升级,使用年限到期后自然网站就无法使用了,同时,我们也将追究其法律赔偿的权利。也请各位用户认清本站唯一官方销售渠道,以免造成钱物两空。请问你们提供售后服务吗?
您好,我们七网科技工作室为每一位为官方正版主题客户提供众多免费的人性化售后服务支持和不定期更新升级服务, 保障客户网站无忧, 帮助客户更好的运行网站,具体的免费更新升级内容请看详细售后服务页面。请问如何保证交易的安全性?
您好,我们七网科技工作室是支付宝签约客户,保障安全交易,确保无忧交易,所有本站可售主题都支持在线实时交易,从而及时获得主题包程序。所以,在本站推荐您使用支付宝(网银)进行安全交易。
这个例子就是鸡西网根据相关短代码资料做出来的结果,其实只是调用了一句短代码,就把整个开发类的常见问题列出来了,而且是可以在任何页面中重复调用。如果有喜欢的网站设计朋友,可以直接拿去用。由于篇幅所限,其CSS样式与相关JS就不贴出来了,自己找自己复制吧。现只贴出相关function供大家举一反三,相信根据鸡西网的注释讲解,你也很快就可以作出适合自己网站使用的短代码。
请将下面的三段代码复制到主题根目录下的functions.php中,如果没有可以自己创建一个。
3.1创建回调函数
其中ECHO部分为鸡西网FAQ部分的相关数据调用,这个并不是通用的,只是举个例子,你要修改成自己需要的数据。
//FAQ function seven_get_faq_function($atts , $content = null){// $atts 代表了 shortcode 的各个参数,$content 为标签内的内容 ob_start();//当前函数开始时,启动一个输出缓冲区 extract ( shortcode_atts ( array (// 使用 extract 函数解析标签内的参数 'obj' => '默认值' ,// 给参数赋默认值,下面直接调用 $ 加上参数名输出参数值,这里的obj参数是鸡西网用于给函数提供一个数组指派 ) , $atts ) ) ; echo '<div class="faq">'; echo '<h2>'.$content.'<i class="iconfont icon-plus"></i></h2>';//这里是参数$content的内容,鸡西网将它放在H2标签里了 echo '<ul>'; if(_seven_faq ($obj)){//判断1,如果调用时填写的obj在_seven_faq中存在,那么就循环输出数组中的数据 foreach (_seven_faq ($obj) as $k => $val) {//开始循环obj这个数组 $problem = $val['problem'] ? $val['problem'] : '未输入问题'; $answer = $val['answer'] ? $val['answer'] : '未输入回答'; $state = $val['state'] ? true : false; if($state){//判断2,如果$state为true的时候,就执行下边的操作,如果为false的时候,就什么都不做 echo '<li>'; echo '<h3 class="asked">'.$problem.'<i class="iconfont icon-plus"></i></h3>'; echo '<div class="text">'.$answer.'</div>'; echo '</li>'; } } } else {//判断1,如果调用时填写的obj在_seven_faq中不存在,那么就给出友好提示 echo '<li><h3 class="asked">暂无FAQ<i class="iconfont icon-plus"></i></h3><div class="text">请前往后台-FAQ设置</div></li>'; } echo '</ul>'; echo '</div>'; return ob_get_clean();//最后关闭此缓冲区并返回其内容,这里和前边的ob_start()相对应 }
注意:如果不添加输出缓存区的相关代码,有可能会在你使用短代码的时候造成显示短代码内容不是理想位置的问题。
3.2注册绑定短代码
function register_faq_shortcodes ( ) { add_shortcode("faq", "seven_get_faq_function");//用add_shortcode注册该shortcode,以后使用[ faq ]标签调用该shortcode }
注意:[]中调用的短代码没有空格,因为鸡西网已经在网站中添加了faq短代码,所以这里如果不加就改就真的把faq给调用出来了
3.3注册绑定回调函数
为了能够执行 seven_get_faq_function() 函数,我们需要把它绑定在 WordPress 的初始化钩子中。
add_action ( 'init' , 'register_faq_shortcodes' ) ;
注意:如果在第二步直接用add_shortcode注册shortcode,短代码功能也是可以使用的,之所以把回调函数绑定在初始化钩子中,我想大概是因为这个回调函数还可以去独立的当函数去调用。没试,懒!