很有用的WordPress主题开发技巧

知更鸟
知更鸟
站长
2320
文章
0
粉丝
WordPress6744,060阅读模式

22,启用paypal 捐赠简码

当你写完一篇以后,可以在文章里面插入paypal 捐赠按钮,方便读者捐赠。以下的代码可以让你非常轻松的做到这一点。

  1. function donate_shortcode( $atts ) {
  2. extract(shortcode_atts(array(
  3. 'text' => 'Make a donation',
  4. 'account' => 'REPLACE ME',
  5. 'for' => '',
  6. ), $atts));
  7. global$post;
  8. if (!$for) $for = str_replace(" "," ",$post->post_title);
  9. return '<a class="donateLink" href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business='.$account.'&item_name=Donation for '.$for.'">'.$text.'</a>';
  10. }
  11. add_shortcode('donate', 'donate_shortcode');

23,设定文章从发布到出现在RSS中的时间长短

通过RSS订阅来阅读博文的朋友可能都会有这个体验:经常发现RSS中的文字或者细节有错误,而返回到页面的时候却发现错误已经没有了。这种情况最有可能是因为

RSS最大的好处是快捷、直接,但这个最大的好处有时候对作者来说却会引发某些尴尬。所以,有时候有必要让文章发布后到读者从RSS中按到有一个小小的时间差,方便作者排查某些问题。以下的代码可以做到以下几点:

  1. function publish_later_on_feed($where) {
  2. global$wpdb;
  3. if ( is_feed() ) {
  4. // timestamp in WP-format
  5. $now = gmdate(‘Y-m-d H:i:s’);
  6. // value for wait; + device
  7. $wait = ‘10′; // integer
  8. // http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff
  9. $device = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR
  10. // add SQL-sytax to default $where
  11. $where .= ” AND TIMESTAMPDIFF($device, $wpdb->posts.post_date_gmt, ‘$now’) > $wait “;
  12. }
  13. return$where;
  14. }
  15. add_filter(‘posts_where’, ‘publish_later_on_feed’);

这段代码设置的时间是10分钟,你可以把10改成任何你想要的时间。

24,自定义摘要输出时的符号

一般设定自动摘要输出,你会经常在WordPress博客的首页看到“[...]”这样的符号。为了界面的美观,或者是个性化的需要,你可以把这个默认的符号改变为其他的符号。而以下的代码就是为了实现这个而写:

  1. // custom excerpt ellipses for 2.9
  2. function custom_excerpt_more($more) {
  3. return '…';
  4. }
  5. add_filter('excerpt_more', 'custom_excerpt_more');
  6. /* custom excerpt ellipses for 2.8-
  7. function custom_excerpt_more($excerpt) {
  8. return str_replace('[...]', '…', $excerpt);
  9. }
  10. add_filter('wp_trim_excerpt', 'custom_excerpt_more');
  11. */

25,自定义摘要输出的文字长度

假如你比较懒,不想在撰写文章的时候每篇文章都输入摘要,就可以让系统自动截取一定长度的文字来作为摘要输出。下面的代码默认是100个字节,也就是50个汉字。你可以把数值修改成符合你需要的数字。

  1. function new_excerpt_length($length) {
  2. return 100;
  3. }
  4. add_filter('excerpt_length', 'new_excerpt_length');

26,显示精确评论数

WordPress默认是把trackbacks 和 pings 都算作评论的,因此当你设置不显示trackbacks 和 ping的时候,评论数看起来总是不对头。以下的代码则以让WordPress只计算评论的数量,而不把trackbacks 和 pings也计算进去。

  1. add_filter('get_comments_number', 'comment_count', 0);
  2. function comment_count( $count ) {
  3. if ( ! is_admin() ) {
  4. global$id;
  5. $comments_by_type = &separate_comments(get_comments('status=approve&post_id=' . $id));
  6. returncount($comments_by_type['comment']);
  7. } else {
  8. return$count;
  9. }
  10. }

27,取消RSS输出

对于某些博客而言,或者因为被太多人采集了,或者因为不想让别人通过RSS订阅,想取消RSS输出。WordPress默认是没有这个功能的,但你可以通过以下的代码来取消RSS输出。

  1. function fb_disable_feed() {
  2. wp_die( __('No feed available,please visit our <a href="'. get_bloginfo('url') .'">homepage</a>!') );
  3. }
  4. add_action('do_feed', 'fb_disable_feed', 1);
  5. add_action('do_feed_rdf', 'fb_disable_feed', 1);
  6. add_action('do_feed_rss', 'fb_disable_feed', 1);
  7. add_action('do_feed_rss2', 'fb_disable_feed', 1);
  8. add_action('do_feed_atom', 'fb_disable_feed', 1);

28,显示Twitter 的订阅数以及其他资料

Twitter系统以及很多第三方的客户端都可以让你在WordPress博客的侧边栏暂时Twitter的订阅数以及一些其他的资料。这种做法往往很多时候都没办法跟博客已有的界面结合的很好。而以下的代码则可以让你自定义Twitter 在博客上的显示外观。

  1. function rarst_twitter_user( $username, $field, $display = false ) {
  2. $interval = 3600;
  3. $cache = get_option('rarst_twitter_user');
  4. $url = 'http://api.twitter.com/1/users/show.json?screen_name='.urlencode($username);
  5. if ( false == $cache )
  6. $cache = array();
  7. // if first time request add placeholder and force update
  8. if ( !isset( $cache[$username][$field] ) ) {
  9. $cache[$username][$field] = NULL;
  10. $cache[$username]['lastcheck'] = 0;
  11. }
  12. // if outdated
  13. if( $cache[$username]['lastcheck'] < (time()-$interval) ) {
  14. // holds decoded JSON data in memory
  15. static$memorycache;
  16. if ( isset($memorycache[$username]) ) {
  17. $data = $memorycache[$username];
  18. }
  19. else {
  20. $result = wp_remote_retrieve_body(wp_remote_request($url));
  21. $data = json_decode( $result );
  22. if ( is_object($data) )
  23. $memorycache[$username] = $data;
  24. }
  25. if ( is_object($data) ) {
  26. // update all fields, known to be requested
  27. foreach ($cache[$username] as$key => $value)
  28. if( isset($data->$key) )
  29. $cache[$username][$key] = $data->$key;
  30. $cache[$username]['lastcheck'] = time();
  31. }
  32. else {
  33. $cache[$username]['lastcheck'] = time()+60;
  34. }
  35. update_option( 'rarst_twitter_user', $cache );
  36. }
  37. if ( false != $display )
  38. echo$cache[$username][$field];
  39. return$cache[$username][$field];
  40. }

把上面的代码复制到 functions.php后,再把下面代码复制到你想出现的地方即可。
Then place the following code where you want to display the count in your theme file:

  1. echo rarst_twitter_user('wpbeginner', 'name').' has '.
  2. rarst_twitter_user('wpbeginner', 'followers_count').' followers after '.
  3. rarst_twitter_user('wpbeginner', 'statuses_count').' updates.';

原文地址:25+ Extremely Useful Tricks for the WordPress Functions File

继续阅读后续内容

本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!

weinxin
我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
 
知更鸟
评论  67  访客  52  作者  9
    • 最好的美白产品
      最好的美白产品 0

      学习学习

      • 淘宝
        淘宝 1

        知更鸟你怎么可以那么厉害呀

        • 雅岚
          雅岚 4

          我又来鸟哥家学习,嘿嘿。。。。
          然后使劲折腾本妖女的Blog,哈哈哈

          • Joe
            Joe 3

            太好了,有wp的简易教程了。得多跟你学习学习。

            • Dianso
              Dianso 3

              这个已经有人翻译完了

              • face
                face 0

                不错不错

                • 媛诺诺
                  媛诺诺 4

                  还是菜鸟级别,来学习了

                  • 南昌115
                    南昌115 1

                    博主是wp的庄家啊

                    • 小子
                      小子 1

                      有些代码按你说的改,但是出错。

                        • 知更鸟
                          知更鸟

                          @ 小子 通告下本技术文章来至国外,国人翻译的,仅供出参考

                        • 老张博客
                          老张博客 2

                          不知道博主的代码高亮是什么插件呀?

                          • 黑苹果博客
                            黑苹果博客 1

                            博主好!
                            【黑苹果博客】http://www.zhangchenghui.com/
                            望与贵博友链,不知可否?
                            若行,请在做好我站链接后给我留言,我将第一时间给您做上,ok?
                            黑苹果

                            • 希丸嘉
                              希丸嘉 1

                              这些知识很实用。博主还是挺厉害的。

                              • 浩子
                                浩子 2

                                有些功能不错

                                • 巴蒂不是图塔
                                  巴蒂不是图塔 0

                                  添加一个 Favicon 图标不错

                                  • 小奥
                                    小奥 0

                                    这个挺好的。。

                                    • 注会之家
                                      注会之家 0

                                      很实用,自己改主题的时候可以实践一下,谢谢
                                      PS,博主的主题很漂亮。

                                      • 1
                                        1 1

                                        谢谢分享

                                        • wloz
                                          wloz 2

                                          这个主题真的挺好

                                          • 阿鼎
                                            阿鼎 4

                                            老大,你的评论底部电提交留言的时候,不会刷新页面,而是出现

                                            • 阿鼎
                                              阿鼎 4

                                              正在提交,请稍候字样,还带特效,是怎么弄的

                                              • 哈哈老师
                                                哈哈老师 0

                                                这些功能都写成了FUNCTIONG的形式,那也就是说,直接在主题的后台调用就可了吧

                                                • 老张博客
                                                  老张博客 2

                                                  感觉第二点是直接可以用的吧。

                                                    • 知更鸟
                                                      知更鸟

                                                      @ 老张博客 是的,有点多此一举
                                                      代码高亮不是插件,可以参考这篇:
                                                      http://zmingcx.com/do-not-realize-wordpress-code-highlight-plugin.html

                                                    • 挚秭之手
                                                      挚秭之手 0

                                                      弱弱地问一句,如何实现本页面类似的自动分页啊?

                                                      • 过客
                                                        过客 2

                                                        厉害,拜师了

                                                        • wmtimes
                                                          wmtimes 7

                                                          嗯。很不错。学习了。

                                                          • 煎豆
                                                            煎豆 1

                                                            其实真正的高手是能够把自己的知识讲给别人,并且使其易懂,我大概就是自己懂点,但讲给别人,使其听懂很难~~

                                                              • 知更鸟
                                                                知更鸟

                                                                @ 煎豆 真正的高手,根本不屑于搞这些东西,都挣RMB去了,呵呵

                                                              • 煎豆
                                                                煎豆 1

                                                                刚才回复的时候,出现警告!!你看看代码是不是有问题!!Warning: copy() [function.copy]: Unable to access http://www.gravatar.com/avatar/70

                                                                • 防水卷材
                                                                  防水卷材 0

                                                                  太经典了啊,学习了!

                                                                  • xibeiwolf
                                                                    xibeiwolf 0

                                                                    这篇文章不错!我还一般直接去该主题PHP文件了!弯路了。

                                                                    • Ding
                                                                      Ding 1

                                                                      再来踩踩

                                                                      • zerone0211
                                                                        zerone0211 1

                                                                        很不错,可是我笨到连改代码都不会。

                                                                        • lowver
                                                                          lowver 1

                                                                          都很实用,尤其喜欢其中几条。。

                                                                          • 备案
                                                                            备案 2

                                                                            3,不用改代码的吧,直接放在根目录就可以。

                                                                            • 五行
                                                                              五行 1

                                                                              很好.谢谢!

                                                                              • IT不倒翁
                                                                                IT不倒翁 0

                                                                                代码总结的不错,不过建议把作者链接放到相应的代码处,这也是对作者的一种尊重,也是对自己的尊重。

                                                                                • woallf
                                                                                  woallf 2

                                                                                  讲的太好了,学习中……

                                                                                  • 土野鲜
                                                                                    土野鲜 3

                                                                                    高手

                                                                                    • 小甜瓜
                                                                                      小甜瓜 2

                                                                                      很有用,学习了。。

                                                                                      • 歪豪
                                                                                        歪豪 0

                                                                                        8错,如果早点看到的话,就更有帮助了。不过,总算是了解到了相关的知识!

                                                                                        • 袁源
                                                                                          袁源 0

                                                                                          挺全面的,不错,是原创的?

                                                                                          • JSON在线格式化工具
                                                                                            JSON在线格式化工具 1

                                                                                            太全了 太实用了

                                                                                            • 闲云野鹤
                                                                                              闲云野鹤 0

                                                                                              能省则省啊,不过有些功能还是比较有用的。不过这篇还是不太全,再来一篇续的吧!

                                                                                              • javasss
                                                                                                javasss 0

                                                                                                不错 大牛

                                                                                                • 杨峰
                                                                                                  杨峰 1

                                                                                                  3.4.1 的控制台有一个welcome 这个怎么移除呢?
                                                                                                  求指点。
                                                                                                  还有顶部菜单最左面有一个about的菜单。
                                                                                                  是wordpress 官网文档之类,那个菜单。该怎么移除呢?
                                                                                                  希望得到你的帮助。
                                                                                                  网上找了资料,没有我想要的额

                                                                                                    • 知更鸟
                                                                                                      知更鸟

                                                                                                      @ 杨峰 打开右上角“显示选项”中去掉

                                                                                                        • 杨峰
                                                                                                          杨峰 0

                                                                                                          @ 知更鸟 我的意思是我想连右上角选项里面的那个也一块移除。
                                                                                                          看来你是没有没看懂我说什么。那就算了。

                                                                                                      • 杨峰
                                                                                                        杨峰 1

                                                                                                        还有。你的网站很不错

                                                                                                        • 菜鸟
                                                                                                          菜鸟 3

                                                                                                          鸟兄弟,请问:留言这里的“有人回复时邮件通知我”修改成“mail我”怎么办呢?请教了

                                                                                                          • 我爱动感单车网
                                                                                                            我爱动感单车网 7

                                                                                                            :cool: 这个functions. php文件确实非常之强大,可以在里面实现很多我们想要的功能,并且不用改变程序或是主题的任何文件,这点更是做的出类拔萃!我就在里面添加了不少东西,用来实现与增加自己博客的一些功能,这让博客比起最初的时候变得精美与符合自己的心意多了!

                                                                                                            • 秋风
                                                                                                              秋风 0

                                                                                                              邮件评论自动回复不能用,会出现“致命错误:不能重新定义comment_mail_notify(….”版本4.8,不知道什么问题

                                                                                                            匿名

                                                                                                            发表评论

                                                                                                            匿名网友
                                                                                                            :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

                                                                                                            拖动滑块以完成验证