设置bbPress论坛的分步指南–第4部分
动作和过滤器添加了一种强大的方式,可以改变bbPress(当然还有WordPress)的工作方式。
对于WordPress的新手来说,他们可能也是最难找到相关信息的人之一。本教程试图揭开这一领域的一些神秘面纱,并帮助新手编写代码,让他们的网站按照自己的意愿运行。
本节介绍操作。
这些是您可以让wordpress在代码中的特定点执行的操作。所以如果你想给一个区域添加一些东西,那么一个动作可能就是你想要的。WordPress和bbPress在整个代码中都充满了动作点。
让我们看看一个人长什么样,这样你就能认出他
<!--?php do_action('bbp_theme_before_reply_author_details');?-->
它们以do_action开头,然后每个操作都有一个唯一的操作名。
上述例子出现在bbPress代码中,作者头像出现在主题或回复之前
因此,如果您希望bbPress在主题或回复中显示作者详细信息之前说出单词“Posted by”,那么您可以创建一些与此操作“挂钩”的代码,这就是代码的作用。
那么我们需要查看的代码在哪里?
这当然是bbPress的第一个问题(就像WordPress的其他部分一样——找出需要修改的文件。
所有关键的模板文件(最有可能是您想要更改的)都保存在文件夹中
Wp内容/插件/bbpress/tempaltes/default/bbpress
虽然很多名字都能很好地说明它们的作用,但在找到你想要的名字之前,你可能需要深入研究一些。
我计划列出这些模板,以及它们在我完成后会做什么!
在此期间,只需浏览一下,你就会发现。
在本教程中,我们将查看您需要创建的代码,但很明显,这些代码需要放到某个地方。那么我们把它放在哪里?
我们将动作添加到函数文件中,或将其创建为插件。
这两种方法都有用途。
如果你喜欢使用插件,那么它们是一种添加更改的好方法,如果你有多个站点,它们也能很好地工作,因为插件很容易上传到每个站点。但他们确实需要更多的知识来编写代码。但是在谷歌上搜索主题,你会发现创建主题有很多帮助。然后把代码放进去,上传到你的网站上。如果你想让其他人使用你聪明的代码,那么插件就是必然的。
另一种方法是使用函数文件。由于您现在正处于使用WordPress的“高级”阶段,您应该要么开发自己的主题,要么使用Childtheme存储细节。
如果你仍然只有其他人的主主题(例如wordpress默认主题、免费主题或高级主题),那么你应该创建一个子主题。这只是使用主主题,您可以将调整添加到子主题。然后,如果主主题被更新,则子主题中的调整不会被覆盖。有关创建儿童主题的帮助,请在谷歌上搜索“儿童主题wordpress视频”,您会发现许多演示。
如果有人已经为你建立了一个网站,它可能已经是一个在一个孩子的主题,再次视频会让你看看是否是这样。
在childtheme中,我们将放置一个functions.php文件,我们设置的操作将放在其中。
因此,为了开始了解我们需要做什么,让我们看看bbPress的一个模板,看看这些模板在哪里使用。
我们将查看的文件名为“loop-single-reply.php”,dafault保存在
wp-content/plugins/bbpress/templates/default/bbpress/loop-single-reply.php
循环单一回复是bbpress用来显示主题及其相关回复的模板,例如本页
如果我们开始查看这个文件,我们会在第39行发现以下内容
<?php do_action('bbp_theme_before_reply_author_details');?><?php bbp_reply_author_link(数组(“sep”=>“<br/>”,“show_role”=>false));?><?php if(bbp_is_user_keymaster()):?><?php do_action(“bbp_theme_before_reply_author_admin_details”);?><div><?php bbp_author_ip(bbp_get_reply_id());?></div(分频)><?php do_action(“bbp_theme_after_reply_author_admin_details”);?><?php-endif;?>
这部分代码显示作者详细信息。
第1行–因此,我们首先看到的是“bbp_theme_before_ply_author_details”的操作
第2行–后面是bbp_reply_author链接代码,显示作者头像、姓名和角色。
第3行-测试查看器是否为键盘管理员
第4行-如果查看器是键盘管理员,您可以在此处添加一些管理操作。
第5行–如果查看器是keymaster,则显示作者的IP地址
第6行–是显示此内容后我们可以挂接的另一个操作
第7行–结束“if admin..”语句
因此,如上所述,如果我们挂接到“bbp_theme_before_ply_author_details”,我们可以在此时添加文本或数据
因此,让我们将“发布者”添加到作者显示区域的开头。
为了做到这一点,我们将简单地挂钩到这个行动。
实际上,我们用
- 一个名字
- 我们想把它挂在什么地方,以及
- 我们希望它做什么
名称必须是唯一的,因为其他插件、主题或者实际上您可以在此时执行操作。
所以这就是我编码的:
//此函数挂接到BBpress loop-single-reply.php,并在作者详细信息之前添加“发布者”函数robin_w_posted_by() {echo“发布者”; }添加操作('bbp_theme_before_ply_author_details','robin_w_posted_by');
所以让我们把这个分开
第1行–以“//”开头的是注释行。今天你可能知道这个函数的作用,但几个月后,你可能就不知道了,所以评论很好地提醒你!
第2行–这将设置一个函数,并将其命名为“robin_w_posted_by”。网站中的功能必须是唯一的,因此在开始时添加您的名字将使任何WordPress、bbPress或任何插件都不太可能已经有这个名称。
第3行–实际的函数代码随后包含在{}中,因此这将打开函数代码区域。
第4行–功能代码–在本例中,它是一个简单的“echo”命令
第5行–关闭代码区
这样就创建了函数,但现在您必须将其挂接到bbPress代码中的do_action命令,即告诉WordPress在哪里实现它。
第6行–最后一个“add_action”命令告诉WordPress向“bbp_theme_before_ply_author_details”添加一个名为“robin_w_posted_by”的操作,即我们刚刚创建的函数。就这样!
所以
|
成为 |
|
本例使用do_action('bbp_theme_after_reply_author_details')操作挂钩将帖子计数添加到作者区域
//此函数挂接到BBpress loop-single-reply.php并将post计数添加到回复显示中函数robin_w_display_count(){$post_count=bbp_get_user_post_count(bbp_get_reply_author_id($reply_id));回波”职位总数:“;echo$post_count;echo“”;}添加操作('bbp_theme_after_reply_author_details','robin_w_display_count');
与第一个示例非常相似,但这里我们将一个名为$post_count的变量设置为计数,然后使用它来显示计数。
结果是: