你问我答

你是否有关于WordPress方面的问题呢?尽管在这里提出,我将尽我所能帮你解决。

是的,完全免费。

134 Replies to “你问我答”

  1. 查询指定日期范围内的日志,然后按他们的访问次数由高到低排列,输出。我的意思是这个。
    还没看wp-postviews是怎么写的,不知行不行。不过再已有此插件的基础上另外再写一个扩展,应该没问题。

    1. Ariagle,
      Sorry,我最近比较忙,不能专心去弄这个插件,暂时是做不了了。
      你可以参考一下wp-postviews的代码和上面提到的SQL,自己弄一个吧。
      抱歉抱歉。

  2. 冰古老师,想请教您个问题,wordpress有没有搬家工具啊?就像现在的网易博客直接就能把新浪的搬过来那种,不是要导入导出XML那种。我从新浪搬到网易了,里面也有几百个贴子了,想搬到WP来。请冰古老师帮我解答一下,谢谢了啊!

  3. 。。。
    刚才没发上去
    再写一遍,呵呵
    冰古老师,记得你写过一个大巴导WP的软件,年前试过,可能是版本问题,当时没导进去,现在想再试试,找不到地址了,请冰古老师帮我再贴下地址吧。
    非常喜欢WP,过年买了个HM的空间,他能自动装WP,可惜现在登不上去了,非要用代理才能上,冰古老师用的什么空间,速度好快啊,准备换空间了

    1. 那个程序你可以在冰古blog查看,不过不一定能成功。或许你测试不成功,可以把备份发给我,我有空的时候帮你转。Email看介绍

      hm的空间,看你的情况应该是被功夫网了,你可以联系他们购买独立IP或者试试问他们看能不能换个服务器。我现在用的空间是vexxhost.com

  4. 谢谢冰古老师及时回答,我研究一下试试,不行再麻烦你。
    说到空间,我到主机侦探问了,说我的IP被封了,刚买过来没几天就封过一次了,现在又封了,都没用过,也不可能有什么违法内容,愁死我了,看来还得花200多再买个独立IP了,不然600大洋就浪费了,希望不会再出现其它情况。
    谢谢冰古老师了,我有不懂的再麻烦你,希望你不闲我烦就行,呵呵。!!!

    1. 因为是虚拟主机嘛,很多人用同一个IP,有一个碰到功夫网,在这个IP下的空间都不能访问了。你可以看看我说的那个空间,买独立IP也只不过是三百多。一般来说没什么问题,我都用了一年多了。

      你问了,只有我能答的上的,我都会帮你答上。我答不上的,应该也能出出意见吧。 :mrgreen:

  5. 还是不太明白add_filter的运作方式……
    我那你那篇《制作五彩缤纷的标签云图》来做实验,代码被我模仿成这样:

    function myp($text) {
    $text = $text.”OKOKOKOKOKOKOKOK”;
    return $text;
    }
    add_filter(‘wp_tag_cloud’, ‘myp’, 1);

    这之后标签云的结尾确实多出了“OK”字样,然后我又将add_filter里的wp_tag_cloud改成其他函数,如the_tags、wp_list_cats等,就都不成功了,这是为什么呢?

    1. filter和action我的理解也不是太彻底。

      这个要看被filter的函数是怎么样的了。

      th_tags是这样定义的:
      function the_tags( $before = null, $sep = ', ', $after = '' ) {
      if ( null === $before )
      $before = __('Tags: ');
      echo get_the_tag_list($before, $sep, $after);
      }

      它的内部是没有用apply_filter生成the_tags这个filter的,所以不能用add_filter来影响它的输出。这时你add_filter(‘the_tags’, ‘myp’, 1); 只是生成了一个叫the_tags的filter而已。用add_action或许可以影响它的输出。

      wp_tag_cloud里有一句:$return = apply_filters( ‘wp_tag_cloud’, $return, $args );
      这里已经生成了一个叫wp_tag_cloud的filter,并且后面跟着两个参数。

      wp_list_categories函数里的定义是这样的:$output = apply_filters( ‘wp_list_categories’, $output );
      它的后面只有一个参数,所以你给它两个参数就错了。你用add_filter(‘wp_list_categories’, ‘myp’);应该就是可以的。

      这就是我的理解,或许有不对的地方。

  6. 真是复杂哈……
    用add_action来处理wp_list_categories是成功了,但the_tags怎么处理都不行。我顺着它要调用的函数看回去,找到了一些有apply_filters的地方,再用add_filter处理它,也不行……
    如果我想对主循环中输出的tags做一些处理(例如给他们加上样式、对链接中的字符串进行处理等),应该怎么做呢?

    1. 如果你要给tags加样式,用一个带有class的div包围tags就可以定义他们的样式了,例如:the_tags(‘Tag: ‘, ‘, ‘, ”);

      如果要对tag进行处理,应该是处理get_the_tag_list可以改变tag吧。

    1. wordpress设置里有一个选项是这样的,“评论时必须输入称呼和邮箱”,如果你不勾选它,邮箱的确是可以不填,但称呼也变成可以不填了。所以不建议不勾选。

      我想到的办法是这样的,打开主题的comments.php,在其中找到类似下面的一句:


      修改成:


  7. 冰古你好,有个问题请教:可以帮忙把下面这段代码改为调用 WordPress 原生jquery吗?谢谢。

    $(“img”).each(function(i){
    var src = $(this).attr(“src”);
    if( src.indexOf(‘ggpht’)!=-1 ){
    $(this).attr(‘src’,’http://xxx.net/readimg.php?src=’+src.replace(‘ggpht’,’gouride’) );
    }
    });

  8. 奇怪,怎么代码没贴全……

    $(“img”).each(function(i){
    var src = $(this).attr(“src”);
    if( src.indexOf(‘ggpht’)!=-1 ){
    $(this).attr(‘src’,’http://xxx.net/readimg.php?src=’+src.replace(‘ggpht’,’gouride’) );
    }
    });

  9. 1、请问,在开发插件的时候,如何使用wp_register_script方法来加载js,而不用
    我在网上找了几个办法好像都不行

    2、我发现wp2.8.4使用的是jquery1.3.2,而在以前的版本使用的是jquery1.2.6,这2个jquery在选择器的使用上存在很大的区别,这样一来编写的插件就很有局限性(要么针对wp2.8.4,要么针对以前的版本),有没有什么好的解决办法呢(我不想在插件里再带一个jquery)

    1. wp_register_script()并不是用于加载js的,它的作用只是注册该js,当你要调用该js时,还需要用wp_enqueue_script()进行调用。例如:

      wp_register_script('js_name', 'http://example.com/js.js');
      wp_enqueue_script('js_name');

      我对jquery不是太熟悉,如果jquery1.3.2兼容jquery1.2.6中的选择器,你可以通过判断wp的版本,然后根据不同的版本写不同的代码吧。jquery1.3.2准确地说是wp2.8开始就更换了的。

  10. 我请教个问题哦,你的这个“你问我答”是怎么做的?wp好像是不支持留言板的,而且还能回复,好像也没有插件有实现这个功能的,可能我孤陋寡闻,忘冰古老师指点一二。

  11. 我不懂php,请问一下,http://www.wodidai.com/post/wordpress-digu.html这个地方发的显示嘀咕的代码,我修改可用后,只能显示一条嘀咕内容,怎么设置成显示多条的呢?

    1. require_once(ABSPATH . 'wp-includes/class-snoopy.php');
      $items = 2; //这里是要显示多少条嘀咕
      $snoopy = new Snoopy;
      $snoopy->fetch("http://api.minicloud.com.cn/statuses/user_timeline.json?userIdOrName=happyet&count=$items");
      $created_at = json_decode($snoopy->results,true);

      for ($i = 0; $i < $items; $i++) { $string = $created_at[$i]['text']; $bb_replace = array('/(\[url=)(.+)(\])(.+)(\[\/url\])/'); $bb_replacements = array('\\4');
      $string = preg_replace($bb_replace, $bb_replacements, $string);
      echo "\"digu\"" . $string . " -
      #
      ";
      if ($created_at[$i]['picPath'][0] != ''){
      echo '
      ';
      }
      }

      这段代码就可以帮你实现。

    1. 你是说你那首页上,有些图能显示有些图不能显示是吧。

      这要看你那两篇能显示图片的文章是怎么设置的了,其他不能显示图片的文章都照着设置就可以了。

      抱歉,可能说的有点太泛,不过没办法,这个光看表面看不出来问题所在。

      1. 一番琢磨图片是显示了,不过鼠标停留预览功能却还没有。
        方便的话我把主题和作者网址发给你。
        我的电邮jshtho@gmail.com

  12. 请问,我在写插件的时候,需要实现吧一系列图片上传的功能,使用wp-upload-bits上传图片时,想要更改上传图片的路径,怎么实现呢。因为,貌似wp-upload-bits的默认上传路径是按照时间划分的,不利于吧这一系列图片归类,谢谢啦

    1. 这个应该是没有现成的函数的

      自己写个吧,先用get_post得到文章内容,然后正则获取more之前的文本,可参考get_the_content

  13. 冰古:久違了。今天又是來請教關於wordpress的。
    「http://taigu.fhl.net/index.html」這個網站的首頁有一項功能,就是它能夠讓讀者自己選擇用一種字型來閱讀網頁。請問這個功能在wordpress中如何使用?我想按它那樣設個這樣的功能,放在首頁的邊欄。謝謝。

  14. 就是有個【字型】的自選式隱藏型下拉菜單。你再去看一下。
    裡面有預設了多種字體(如“Lucida”、“Arial”……),讀者可以根據個人喜好,在隱藏式下拉菜單裡點擊任意一種字體來瀏覽網頁。

    1. 這個要你自己折騰一下了,我最近都沒什麼時間。

      那個功能的秘密就在於下面的代碼:



      把上面代碼中相關的 cookie-lib.js 下載到你的服務器上,然後代碼中的 taigu.fhl.net 改為你的域名。

      最後把他們那裡的 下拉菜單 的 html 代碼貼到你主題上就可以了。

          1. 修改程序我也会,呵呵。你说的这个方法如果wordpress升级了,之前的quicktags.js就会被覆盖。能否有更好的解决办法?通过插件来实现。

            1. 下面代碼加到functions.php文件中就可以了。

              add_action('admin_head', 'div_quicktag');
              function div_quicktag() {
              ?>
              <!--
              edButtons[edButtons.length] =
              new edButton('ed_div'
              ,'div'
              ,''
              ,''
              ,'div'
              );
              //-->
              <?php
              }

Leave a Reply to Kevin Cancel reply

Your email address will not be published. Required fields are marked *