如何在 the_content 之前或之后添加内容以及在自定义帖子类型中
已发表: 2020-01-09在您的 WordPress 网站页面和帖子中,您可能希望在页面内容或帖子内容之后添加一些内容。 所有页面或帖子或两者或自定义帖子类型都可能需要此类内容。 在这种情况下,您需要使用过滤器在 WordPress 主题或插件的页面模板中的the_content函数之后或之前添加内容。 幸运的是,今天,我将说明如何在不破坏网站的情况下完成这项工作的最简单方法。
发布内容后要添加的内容示例
一个很好的例子是,当您想与访问者分享有关会员披露或评论政策的快速说明时。
您无需在每次发布帖子或页面时都输入此内容,而是可以使用过滤器自动完成。
每次必须添加此类内容时,您不仅可以节省时间,还可以防止拼写错误。 如果您不是 WordPress 开发人员,您可以轻松地将此代码段添加到您的functions.php 文件中,并将内容替换为您各自的内容。 您将来不必担心它。
在 WordPress 中的页面或发布内容之后添加内容
创建 WordPress 主题或自定义 WordPress 主题时,您可能需要将内容添加到the_content的末尾。 当您使用自定义元字段或自定义帖子类型以及应添加到每个帖子末尾的特定详细信息时,这种情况尤其常见。
您可能会使用get_post_meta 、 get_user_meta或get_option来获取为特定帖子或用户存储的数据,然后再将其添加到 the_content 函数之后。
在几种情况下,您可能需要在the_content之后添加内容。 我想通过逐步演示如何在the_content 之后添加内容来简化您的操作。
在 the_content 之后过滤 Hook 以添加新内容
显然,要在 WordPress 页面上添加任何内容,您需要了解过滤器挂钩的工作原理。 理想情况下,WordPress 有两种类型的钩子,动作钩子和过滤器,正如这篇文章中清楚解释的那样——WordPress do_action 钩子和应用过滤器,或者你至少应该知道如何在你的主题中编辑 functions.php 文件
所以我们需要一个过滤器来过滤我们页面上的内容,然后在我们返回输出之前添加新内容。
在 WordPress 中的 the_content 之后添加内容
首先,我们需要按如下方式创建过滤器:
add_filter('the_content', 'add_content_after');
回调函数现在应该包含我们想要在 the_content 之后添加的代码,我们还应该在回调函数中传递 $content 参数,以便我们过滤并返回:
函数 add_content_after($content) { $after_content = “我们的评论政策示例”; $完整内容 = $内容。 $after_content; 返回 $fullcontent; }
因此,在这种情况下,我们添加了$after_content ,它的显示如下图所示:
您可以将代码中$after_content的值替换为您的消息,并将完整的代码段添加到 functions.php 中,内容将添加到内容之后。 合并后的代码片段如下:
add_filter('the_content', 'add_content_after'); 函数 add_content_after($content) { $after_content = “发布内容后我们的评论政策示例”; $完整内容 = $内容。 $after_content; 返回 $fullcontent; }
在 WordPress 页面或帖子中的 the_content 之前添加内容
在某些情况下,您可能希望在the_content之前添加内容。 比如我最近在建一个宠物网站的时候,需要先列出犬种的详细信息,然后才能显示内容,如下图所示:
虽然在这个项目中我使用了不同的方法,但如果您需要在the_content之前显示内容,您仍然可以使用上面共享的过滤器,唯一的区别是加入$fullcontent变量时。
在这种情况下,您将从要首先显示的内容开始,如下所示:
add_filter('the_content', 'add_content_before'); 功能 add_content_before($content) { $before_content = “我们在发布内容之前的评论政策示例”; $fullcontent = $before_content 。 $内容; 返回 $fullcontent; }
输出应显示为下图中突出显示:
在 WordPress 页面或帖子中的 the_content 之前和之后添加内容
您还可以有一个组合场景,您希望在the_content之前和之后显示内容,这可以通过以下代码实现:
add_filter('the_content', ' add_content_before_and_after); 功能 add_content_before_and_after($content) { $before_content = “我们发布内容前后的评论政策示例”; $after_content = “我们发布内容前后的评论政策示例”; $fullcontent = $before_content 。 $内容。 $after_content; 返回 $fullcontent; }
输出应显示为下图中突出显示:
在 the_content 前后和自定义帖子类型中添加内容
如果您希望只为特定的自定义帖子类型添加此内容,您可以添加一些逻辑来确定我们是否正在查看自定义帖子类型,如果是,我们添加内容,否则我们返回默认的the_content。
在这种情况下,如果您的自定义帖子类型名为“书籍” ,则代码应如下所示:
//将新内容添加到特定自定义帖子类型页面模板的4个步骤 add_filter('the_content', 'add_new_content_after_books_custom_post_type'); 功能 add_new_content_after_books_custom_post_type($content) { //1) 检查我们是否在单个帖子上并且帖子类型等于书籍,即自定义帖子类型的 slug if (is_singular("books")){ //2) 将新内容添加到变量中 $new_books_content = "这是在图书自定义帖子类型之后要添加的新图书内容" $aftercontent = $new_books_content; $完整内容 = $内容。 $后内容; //3) 如果条件为真,则返回自定义帖子类型的第一次 返回 $fullcontent; }别的{ //4) 如果这是任何其他页面或帖子而不是书籍 cpt 返回默认的 the_content 而没有附加内容 返回$内容; } }
包起来
正如我们在这篇文章中所概述的,在the_content之后或之前添加内容不应该是一项艰巨的任务,您可以快速将代码片段复制到您的主题functions.php文件中,它应该可以工作。
作为一名专业的 WordPress 开发人员,了解更多关于 WordPress 操作钩子,尤其是过滤器钩子的信息可能会有所帮助。 我希望本教程对您有用,并将与您的开发人员和朋友分享。