GG资源网

关于WordPress中分类的操作问题思考(wordpress搜索页面显示文章数量的方法)

关于WordPress中分类的操作问题思考

WordPress运行时间长了,文章数量非常多,而且分类也可能会越来越多,当你想要对某个分类下的文章进行处理的时候,常规的操作基本都是按照下方的流程来的:

这套操作下来,基本可以满足大多数人的需求,但是我们都知道,文章列表每页显示的数量依赖服务器的配置,配置高,显示数量可以调高一点,但是如果比较底的配置。那么可能就需要很长时间去加载了。

而且上面的操作仅限于将所有的分类增加指定分类,也就是图片中的第三步,你勾选的分类都会叠加到对应的文章上面去,而不是直接将文章设定为勾选的分类,所以就会出现一种比较尴尬的情况,如果你想要设定某些文章为某个指定分类,可能需要的操作就是新创建一个分类,然后将文章设定为这个分类,接着删除原始分类。

同样的,如果你打算将一批含有指定分类的文章删除其中共有的一个分类,我相信很多新手可能就开始不知道如何下手了。

如果你对于上面两种情况有需求或者考虑过上面的问题,那么可以继续往下看。

思路方案

想要实现这个功能,我们需要考虑三个方面:直接设定为某个方案、增加某个分类、删除某个分类

直接设定

将所有分类直接设定为某个分类,其实非常简单,只需要利用WordPress中一个函数即可:wp_set_post_categories(),该函数的相关说明如下:

wp_set_post_categories() 函数介绍

  • 函数用法
  • wp_set_post_categories( int $post_ID, int[]|int $post_categories = array(), bool $append = false )Set categories for a post.
  • 功能介绍
  • If no categories are provided, the default category is used.
  • 参数介绍
  • $post_ID(int)
    (Optional)
    The Post ID. Does not default to the ID of the global $post. Default 0.$post_categories(int[]|int)
    (Optional)
    List of category IDs, or the ID of a single category.Default value: array()$append(bool)
    (Optional)
    If true, don't delete existing categories, just add on. If false, replace the categories with the new categories.Default value: false
  • 返回值
  • (array|false|WP_Error) Array of term taxonomy IDs of affected categories. WP_Error or false on failure.

    通过函数我们可以了解到其功能就是我们需要的,将指定文章设定为某个分类即可。其中参数post_categories是一个数组参数,言外之意可以设定为特定的多个分类。

    实践方面我这边讲解大概,大概步骤如下:

  • 1.通过WP_QUERY()函数获取指定分类的文章,其中查询参数中的分类推荐使用category__in
  • 2.通过标准循环针对所有文章进行处理
  • 3.标准循环中的处理方式使用wp_set_post_categories()即可
  • 大概思路如上,如果你有兴趣的话,可以折腾一下,折腾不起来的话,可以继续看到最后。

    增加指定分类

    增加指定分类的情况相比上一个直接设定的情况可能多一个步骤,就是需要将增加的分类和文章原有的分类进行合并,那么思路如下:

  • 1.通过WP_QUERY()函数获取指定分类的文章,其中查询参数中的分类推荐使用category__in
  • 2.通过标准循环针对所有文章进行处理
  • 3.通过wp_get_post_categories()函数获取每篇文章的分类
  • 4.通过PHP函数array_merge将第3步中获取的数组结果与指定分类数组进行合并
  • 4.标准循环中的处理方式使用wp_set_post_categories()即可
  • 如果对于上面的步骤不明白的,没关系,下面会有更简单的方法。

    删减指定分类

    增加和删除的思路基本不变,只不过其中使用的PHP函数不再是array_merge而是array_diff,下面是两个PHP函数的相关说明:

    array_merge 函数介绍

  • 函数介绍
  • (PHP 4, PHP 5, PHP 7, PHP 8)array_merge — 合并一个或多个数组
  • 函数说明
  • array_merge(array $... = ?): array将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将
    不会 覆盖原来的值,而是附加到后面。如果输入的数组存在以数字作为索引的内容,则这项内容的键名会以连续方式重新索引。
  • 参数介绍
  • ...

  • 要合并的数组。
  • 返回值
  • 返回合并后的结果数组。如果参数为空,则返回空 array。
  • array_diff 函数介绍

  • 函数介绍
  • (PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)array_diff — 计算数组的差集
  • 函数说明
  • array_diff(array $array, array ...$arrays): array对比 array 和其他一个或者多个数组,返回在
    array 中但是不在其他 array 里的值。
  • 参数介绍
  • array要被对比的数组arrays和更多数组进行比较
  • 返回值
  • 返回一个数组,该数组包括了所有在
    array 中但是不在任何其它参数数组中的值。注意键名保留不变。
    保留数组 array 里的键。
  • 新手专属

    如果上面的思路你的脑袋明白了,但是手不明白,那么可以直接使用一个名为Batch Cat的插件,该插件可以完美实现上面所有的功能,只需要你进行几次点击即可,非常适合新手,其次,按照上面的思路,如果你有能力,同样可以针对标签进行操作。

    插件界面如下:

    我个人方面将该功能集成至本主题,最终效果如下:

    wordpress搜索页面显示文章数量的方法

    wordpress网站默认搜索页中无法显示文章数量,显示搜索文章的数量可以给用户更好的体念。

    今天分享wordpress搜索页面显示文章数量的方法,

    在主题目录下的search.php的适当位置添加以下代码:

    这种方法的原理是重新建立一次数据库读取操作,然后计算读取到的结果数。这种方法既要写一段长长的复杂的代码,又多出一次数据库操作,耗费资源又浪费时间。而且如果你指定了搜索某个分类,那么上面的代码统计就会出现错误,还需要重新修改。

    我们可以用一种更简短的代码来获取搜索结果的文章数量,统计效果更加准确,不需要做太多的条件分享,在search.php的适当位置添加以下代码即可:

    这个代码更加简短,而且使用的是WordPress的原先建立的wp_query对象的值,更加简便。

    由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
    1. 带 [亲测] 说明源码已经被站长亲测过!
    2. 下载后的源码请在24小时内删除,仅供学习用途!
    3. 分享目的仅供大家学习和交流,请不要用于商业用途!
    4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
    6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
    7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
    8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
    10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
    GG资源网 » 关于WordPress中分类的操作问题思考(wordpress搜索页面显示文章数量的方法)

    发表回复

    CAPTCHAis initialing...