首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在发布帖子前检查条件(Wordpress - Hooks)

如何在发布帖子前检查条件(Wordpress - Hooks)
EN

Stack Overflow用户
提问于 2019-11-07 14:33:09
回答 2查看 529关注 0票数 0

我想在用户发帖之前检查一个条件。用户必须有一个jeton (用户元数据),如果没有,帖子将不会被推送到数据库中,否则,它将有一个jeton将被烧毁。我要找的钩子或过滤器是什么?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* Jeton is French for token or coin */

add_action('what_is_the_action_or_filter_im_looking_for', 'check_jeton_before_publish');

function check_jeton_before_publish($data) {

    $user_id = get_current_user_id(); // Get user ID
    $meta_jeton = get_user_meta($user_id, 'jeton'); // Jeton count

    if ($meta_jeton == 0 || empty($meta_jeton)) { // No jeton ? No post !

        return;

    } else { // Jeton ? Post, then burn one jeton

        $new_jeton_count = $meta_jeton - 1;
        update_user_meta($user_id, 'jeton', $new_jeton_count);
        return $data;
    }
}

感谢您的宝贵时间!

EN

回答 2

Stack Overflow用户

发布于 2019-11-08 04:56:56

根据wp_post_insert的说法,filter wp_insert_post_empty_content应该可以为您工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   /**
     * Filters whether the post should be considered "empty".
     *
     * The post is considered "empty" if both:
     * 1. The post type supports the title, editor, and excerpt fields
     * 2. The title, editor, and excerpt fields are all empty
     *
     * Returning a truthy value to the filter will effectively short-circuit
     * the new post being inserted, returning 0. If $wp_error is true, a WP_Error
     * will be returned instead.
     *
     * @since 3.3.0
     *
     * @param bool  $maybe_empty Whether the post should be considered "empty".
     * @param array $postarr     Array of post data.
     */
    if ( apply_filters( 'wp_insert_post_empty_content', $maybe_empty, $postarr ) ) {
        if ( $wp_error ) {
            return new WP_Error( 'empty_content', __( 'Content, title, and excerpt are empty.' ) );
        } else {
            return 0;
        }
    }

您可以在wp_insert_post_empty_content筛选器中执行条件,并返回true以停止插入帖子。

票数 1
EN

Stack Overflow用户

发布于 2019-11-08 16:00:06

我认为@KGreene的答案值得一试,谢谢你的投入。

我改变了我的策略,如果用户没有jeton,我会重定向他们,这样他们甚至看不到编辑器,并在发布时在不同的钩子中烧掉jeton。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
*   Redirect user that doesnt have jeton, let others proceed
*   https://developer.wordpress.org/reference/hooks/save_post/
*/
function handle_before_publish_post($post_id, $post, $update) {

     // Only on post creation not update (they can update with 0 jeton)
    if ($update) {
        return;
    }

    $poster_id = $post->post_author;
    $meta_jeton = get_user_meta($poster_id, 'jeton')[0];

    if ($meta_jeton > 0) {
        return;
    } else {
        wp_redirect('[my-domain]/wp-admin/edit.php?post_type=[my-custom-post-type]');
    }
}
add_action('save_post_[my-custom-post-type]', 'handle_before_publish_post', 10, 3);

/*
*   Use a jeton on post creation
*   https://developer.wordpress.org/reference/hooks/new_status_post-post_type/
*/
function handle_after_publish_post($post_id, $post) {

    // Burn jeton
    $poster_id = $post->post_author;
    $meta_jeton = get_user_meta($poster_id, 'jeton')[0];
    $new_jeton_count = $meta_jeton - 1;

    update_user_meta($poster_id, 'jeton', $new_jeton_count);
    return;
}
add_action('publish_[my-custom-post-type]', 'handle_after_publish_post', 10, 3);

这不是我想要的方式,但它工作得很好。

感谢大家抽出时间来

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58750980

复制
相关文章
WordPress 教程:如何在发布文章前对文章内容进行预处理
我们在 WordPress 发表文章的时候,有时会遇到一些特殊的需求,比如把文章中的链接变成可点击,或者过滤掉文章内容 HTML 标签中的某种属性等。
Denis
2023/04/15
6420
Sticky Posts Switch插件教程WordPress中为分类添加置顶文章
默认情况下,WordPress在博客页面顶部显示最新帖子。当您将新内容发布到您的网站时,之前的帖子会关闭并最终移动到存档页面。粘性帖子允许您在WordPress中添加精选帖子,并在您的网站主页上以不同的方式显示它们。
晓得博客
2022/09/28
5.6K0
Sticky Posts Switch插件教程WordPress中为分类添加置顶文章
Discourse 发布帖子的时候下载图片到本地
在默认情况,如果你的主题上有远程的图片的话,Discourse 会尝试现在到本地。
HoneyMoose
2020/06/21
9250
ABAP-SM30删除前检查
之前发表过一篇关于SM30增强的文章,今天算是一点补充:使用EVENT来实现删除前的检查
Tab Zhu
2022/06/27
5730
ABAP-SM30删除前检查
5个最佳WordPress广告插件
WordPress插件可能是当今人们可以使用的最好的东西之一。它们提供了在网站上完成原本需要由开发人员完成的事情的能力。
晓得博客
2022/07/18
8.6K0
Genesis框架从入门到精通(2):什么是动作?
在本系列的前一篇文章中,我解释了Genesis框架和乐高之间的相似性。我列出了Genesis所有内置的“钩子”,把它们比喻成乐高里连接各个积木块的小凸点。
丘壑
2019/03/13
7560
WordPress 2.6.5 发布
WordPress 2.6.5 修正了一个可能会引发跨站攻击的 Bug。幸运的是,这个Bug 只影响运行 Apache 2.x 的基于 IP 的虚拟主机。
Denis
2023/04/13
1650
WordPress 2.3 发布
以下是 WordPress 官方博客对 2.3 版本的介绍,原文地址:WordPress 2.3。
Denis
2023/04/14
2840
【说站】js如何检查是否满足条件
1、every只有满足每个条件才能返回true,some是任何一个满足返回true的项目,filter过滤出所有符合条件的项目(找不到返回空)。
很酷的站长
2022/11/24
2.2K0
【说站】js如何检查是否满足条件
WordPress 教程:如何在 WordPress 站点创建后门
是不是在很多场合听说过后门(Backdoor),特别是一些高科技的电影里面,那些系统或者程序的作者都会通过自己留下的后门来拯救世界 🙂 。其实程序的后门留我们根本不远,其实你用的很多软件或者程序都是有
Denis
2023/04/15
6810
注册前如何检查域名是否违规过
如果域名前主人用域名做坏事被拦截了,拦截信息并不会在新注册后被自动消除,而是需要手动拨打申述电话申述解除,比较麻烦。
kr
2022/09/06
3.7K0
解决 WordPress 无法自动检查更新
自 wordpress 3.7开始,自动更新已经默认开启。小版本更新将全自动运行,无需人工干预。但在 reizhi 的博客却遇到了一些问题,wordpress 不但无法自动更新,在更新界面也看不到最新的版本信息。如下图所示,下载后本应显示服务器端最新版本号,但在此只显示了一个横线。起初以为是版本号丢失,但查看 wordpress 后台底部却能够正确显示当前版本。重装过数次虽然能短暂解决,过一段时间之后又再次出现。 
reizhi
2022/09/26
1.4K0
解决 WordPress 无法自动检查更新
注册前如何检查域名是否违规过
如果域名前主人用域名做坏事被拦截了,拦截信息并不会在新注册后被自动消除,而是需要手动拨打申述电话申述解除,比较麻烦。
kr
2022/09/28
4.1K0
注册前如何检查域名是否违规过
如何在 wordpress 文章页和单页面隐藏作者/发布者
wordpress 文章页会显示出发布者的名字,而默认的也是 wp 后台登陆名,这个就有安全性隐患。除了修改这个显示名字之外,也可以直接在模板里面去掉这段代码,在前台显示出隐藏的效果,也侧面提高了安全性。如何在wordpress 文章页和单页面隐藏作者/发布者呢,下面魏艾斯博客来详细说一下操作步骤。 进入 wordpress 后台,点击外观-编辑,在右侧找到并点击 single.php,进入编辑页面,每个人使用的模板不同,只要找到包含“author”的代码就对了,要包括前后的 css 样式。 我这里模板要去
魏艾斯博客www.vpsss.net
2018/06/01
3.5K0
如何在受控表单组件上使用 React Hooks
React Hooks 是一个闪亮的新提案,将优化 90% 的 React 代码。 根据 Dan Abramov 的说法,Hooks 是 React 的未来。
三毛
2023/06/09
6210
如何在受控表单组件上使用 React Hooks
WordPress插件-WordPress采集发布插件【2022】
为什么要用WordPress插件?如何利用WordPress插件让网站收录以及关键词排名。我们做优化不要只是在做表面,需要深入的研究,其实这个行业还是有着无穷的魅力。从最开始走来,从最开始的新鲜,不厌其烦的进行优化,到中间一段时间的怠倦,到现在又开始重新调整。我们在做任何事情都如这样,所以我们seo优化也需要的就是努力+坚持,这样我们才会得到丰收。
用户6632349
2022/03/07
1.9K0
WordPress插件-WordPress采集发布插件【2022】
WordPress主题制作:开始前的准备
总是喜欢去尝试各种各样的主题,但寻找很久之后也没有找到一款适合自己的,总有一些地方不合自己的心意,于是萌生了制作子主题的想法,在创建了子主题之后才发现,在子主题的修改和过程中越发感觉子主题的并不是我想要的,特别是在父主题更新之后,所以开始想着从头开始,自己制作一款主题吧。
Yiiven
2022/12/15
7160
使用Solr涡轮增压您的WordPress搜索
由于无法建议搜索短语,捕捉拼写错误,理解单词变体,组织和过滤结果以及索引搜索结果文档,因此WordPress内置的标准搜索无法为访问者提供最佳搜索体验。全文搜索引擎通常提供这些功能,Apache Solr是一个免费的开源选项。
GongAo啊_
2018/09/03
4.9K1
使用Solr涡轮增压您的WordPress搜索
K8S 生态周报| Ingress-NGINX v1.8 发布,升级前请先检查
很抱歉,最近一段时间真的太忙了,写文章都断断续续的。主要在使用 Langchain 搭配 GPT-4 开发一些项目。
Jintao Zhang
2023/09/03
2430
K8S 生态周报| Ingress-NGINX v1.8 发布,升级前请先检查
自动化发布-GitLab WEB Hooks 配置
钩子(hooks) Git是在特定事件发生之前或之后执行特定脚本代码功能(从概念上类比,就与监听事件、触发器之类的东西类似)。 Git Hooks就是那些在Git执行特定事件(如commit、push、receive等)后触发运行的脚本。 gitlab的web hooks跟git hook类似。也是当项目发生提交代码、提交tag等动作会自动去调用url,这个url可以是更新代码,或者其他操作。 配置目的 由于系统属于后台接口系统,开发提交完git仓库后要实时的部署到测试环境,这时候就需要用到gitlab的w
小小科
2018/05/03
2.2K0
自动化发布-GitLab WEB Hooks 配置

相似问题

发布帖子前检查字段值(wordpress)

11

如何在发布前编辑帖子数据?

21

如何在wordpress中自动发布新帖子

10

WordPress -按日期发布帖子

10

如何在生成前更改wordpress帖子内容

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文