20 responses to “Hybrid 常用Action”

  1. minibird

    谢谢鼓励。请教一个关于action的问题,应该跟这个帖子有关了。
    按照你提供的页面流程图,footer(31-36),就是div#footer 包含的内容,位于container (13-29),也就是div#container之后。我想请教用什么add_action将footer添加到container之前(不是container里面的开始位置),用什么remove_action将footer从默认加载到末尾的状态改为不加载呢?

    我自己尝试着移动了page_nav、cat_nav以及widget的位置,但是找不到footer和container的操作方法。
    你的这些资料是哪里来的?莫非只有hybrid的付费用户才能看到?我在hybrid里可得到的资料少得可怜,support里基本上所有的有用信息只有付费用户才能看到。

  2. minibird

    Charles 你好!
    我找到了一个笨一些但简单的实现方法,与你分享。
    下面这个插件可以让你自定义输出的页面的链接的a元素的title:
    http://www.stuffbysarah.net/wordpress-plugins/page-menu-editor/
    我修改了一下其代码,改为为其增加一个class属性。
    后面的工作就是比较麻烦点,自己要手动为每个页面链接添加class并修改CSS和配备图片了。但毕竟不需要我编写代码了。我试了,应该是兼容hybrid的主题框架的。
    十分感谢你的帮助。

  3. minibird

    收费可以呀,耽误您的时间,应该给予补偿。
    我只是懂一点点编程知识,思路大概找到了,也看了您的代码,但是真正的问题是,具体编码实现对我很困难。
    您有时间帮我编一个函数,实现我的想法吗?收费多少你先说说。

  4. minibird

    汗,难道我的表达能力真是如此差劲吗?
    页面导航,就比如你的网站,当前这个页面,最上面不是有一行吗?
    比如:Home、 Contact、 Archives、Down、 About
    这个就是我说的页面的导航,列出的是页面。使用wp_list_pages可以调用页面列表(2.7中新增了wp_page_menu),并且会自动为每个列表元素([li])添加一个 class属性page_item,且会为当前页面动态增加一个class属性current_page_item。
    比如我们现在不在about页面,那么输出的对应about页面的链接代码如下:
    [li class="page_item page-item-5"]
    [a title="About" href="http://sexywp.com/about"]
    [span]About[/span]
    [/a]
    [/li]

    我的想法是:
    1、用about.gif这个图片来代替文字about表示的链接,如能够替换 [span]About[/span],替换为[img src=xxxx/about.gif]about[/img]。对于其他页面的链接,如用home.gif代替home的文字链接……
    2、支持鼠标活动,默认是一个图片,鼠标移动上去激活(为hover状态时)换一张图片。由于IE6仅仅支持a元素的hover状态,所以需要为a元素添加一个class或者id属性,用CSS来实现这一点。
    3、出于更多的需求,我想把这个导航涉及到的所有的元素如li、a、span以及我想增加的img都添加一个class或id属性。class或id的值要与页面的ID或者页面名对应起来,这样我手动添加CSS代码和图片时,用ID或者页面名来对应这些元素,就能实现不同的页面导航链接显示的是不同的图片了。
    4、我想让这种功能稍微智能一点,即,如果我不手动添加CSS代码或图片的话,那么还是按照老样子继续输出现在的这种文字导航,主要是不用图片替换现在的文字。所以需要在输出我想要的图片的导航链接前,先判断一下是否某个图片存在。
    5、我还想更智能一点,我只想对一级页面做这种修改,二级页面还想保持文字格式的链接。所以,输出前最好能判断一下是否是一级页面。

    我大概看了以下wp_list_pages这个函数,上面关于about的代码是它的默认输出。我目前找到的解决办法就是在它输出后,用str_replace函数来替换相应的代码,这或许是比较笨蛋的一个办法。另外,我的PHP和WORDPRESS以及正则表达式的能力和经验都很差劲,即使是这样笨而浅显的方法,对我来说实现起来也很困难。
    所以希望得到你的帮助。

    1. minibird

      更正一下,[img src=xxxx/about.gif]about[/img]写错了,应该是[img src=xxxx/about.gif][/img]。
      给你添麻烦了。:)

  5. minibird

    Charles 你好!有个问题看看您能不能帮上忙?
    我想对页面导航做一些修改,主要目的是用图标代替页面的title文字做导航,并且用CSS做显示控制。
    在循环输出全部页面名称和链接等元素建立导航过程中,在对每一个页面处理时:
    1、判断主题下图标目录里是否有某个文件,如about.gif
    2、如果没有,则输出文字导航,就像现在常见的页面的导航一样
    3、如果有,则输出类似这样的代码:
    [li class="page_item" id="mynav-about"][a href="#" class="mynav-about"][img src="icons_dir/about.gif"][/a][/li]

    要实现这样的功能,需要去研究哪些函数?有没有参考的代码?
    谢谢了。

    1. minibird

      我修改了hybrid/library/functions/hook-filters.php中的hybrid_page_nav(),修改的地方如下:

      $nav = str_replace( ‘<div class=”‘, ‘<div id=”page-nav” class=”‘, $nav );
      $nav = str_replace( ‘<a’,'<a id=”mypage-nav” class=”aaa”‘, $nav);//增加的一行代码
      $nav = preg_replace( ‘//’, ”, $nav, 1 );
      当然,还没达到目的,比如第二行增加的那行代码,如何才能用页面的英文名称或ID替换掉aaa呢?
      当然,这应该是基础的PHP的问题,我这个不懂。
      另外,直接改hybrid的函数也不太好,能不能在自定义的主题里实现这样的修改呢?

      1. minibird

        $nav = str_replace( ‘[div class="', '[div id="page-nav" class="', $nav );
        $nav = str_replace( '[a','[a id="mypage-nav" class="aaa"', $nav);//增加代码
        $nav = preg_replace( '/[ul]/’, ‘[ul class="menu sf-menu"]‘, $nav, 1 );
        没有别的修改,只是插入了一行代码。因为你的留言功能过滤了HTML标签,我只好用[代替<了。

  6. onefrozen

    刚在hybrid0.5看见你的评论,主要是博主那头像太个性了一眼就看到了熟悉的海贼王,我英文很烂,只会看领会个大概意思,要叫我写就完全没招了。
    不知道伟大的独一无二的无比正确的博主试用0.5这个版本没
    我现在用的Hybrid News 0.1这个主题,但是遇到几个小问题

    1、在页面导航中怎么排除一些页面,由于hybrid不是直接用的wp_list_pages函数,搞的我很惆怅

    2、我想通过函数加入“最新日志”到侧边栏,有什么好的办法么?

    3、在error_log,发现都是同一个错误,能力有限无法解决,还望指点迷津
    [23-Mar-2009 01:04:40] PHP Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /home/frozens/public_html/wp-content/themes/hybrid/library/functions/dynamic-classes.php on line 166
    [23-Mar-2009 01:04:40] PHP Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /home/frozens/public_html/wp-content/themes/hybrid/library/functions/dynamic-classes.php on line 172
    [23-Mar-2009 01:04:40] PHP Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /home/frozens/public_html/wp-content/themes/hybrid/library/functions/dynamic-classes.php on line 178
    [23-Mar-2009 01:04:40] PHP Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /home/frozens/public_html/wp-content/themes/hybrid/library/functions/dynamic-classes.php on line 184
    [23-Mar-2009 01:04:40] PHP Warning: array_key_exists() [function.array-key-exists]: The second argument should be either an array or an object in /home/frozens/public_html/wp-content/themes/hybrid/library/functions/dynamic-classes.php on line 190

  7. onefrozen

    能多放一点hybrid的使用技巧么?现在真的无从下手啊

  8. Alex

    呃。。。看了这个文章基本上可以找到header定义函数的地方,但关键问题是还不会自己写,O(∩_∩)O哈哈~~~
    什么时候讲到自己定义sidebar的代码!!

无觅相关文章插件,快速提升流量