5ucms论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 10990|回复: 0
打印 上一主题 下一主题

[教程] WordPress无插件实现新建文章时预先自动选择分类

[复制链接]

670

主题

785

帖子

8273

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8273
跳转到指定楼层
楼主
发表于 2021-5-29 20:02:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
需求
在 CMS 系统里,会有这样一类需求:点击按钮创建一篇XX分类的文章,比如「新建歌曲」、「新增产品」、「新增日记」、「新增分类1下的文章」等(假设歌曲、产品、日记、分类1是你的 CMS 系统里已经存在的分类或类型)。

如图:需求是打开编辑文章的界面后,分类1要自动勾选。

这个简单的需求,在目前版本的 WordPress(4.2.2) 里并不能简单地实现。但可以通过 Hook 配合 jQuery 实现,不需要插件。

原理
可以将这个需求分解为两步:

按钮指向一个链接,此链接中包含分类参数(如分类的tag_ID,我们在示例中设为 catid)
后台加载新建文章页面后,获取 URL 中的 catid 参数,通过 JS 模拟点击以选择此分类
将以下代码加入到 WordPress 主题的 function.php 中,这样,则可以通过形如
链接为编号为 72 的分类下创建一篇文章。

WordPress无插件实现新建文章时预先自动选择分类

代码
  1. function ws_preselect_post_category() {
  2. if ( isset($_GET['catid']) && is_numeric($_GET['catid']) ) {
  3. $catId = intval($_GET['catid']);
  4. ?>
  5.         <script type="text/javascript">
  6.             jQuery(function() {
  7.                 var catId = <?php echo json_encode($catId); ?>;
  8.                 jQuery('#in-category-' + catId).click();
  9.             });
  10.         </script>
  11.         <?php
  12. }
  13. }
  14. add_action('admin_footer-post-new.php', 'ws_preselect_post_category');
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5ucms.com

GMT+8, 2024-6-16 04:44 , Processed in 0.062500 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表