在POST保存/更新后执行php

时间:2020-08-07 作者:jam

我创建了一个php脚本(generate.php),它根据设置的条件查询帖子,然后将结果写入自定义xml文件。我想执行generate。php每次按下post Save/Update按钮时。你知道怎么做吗?也许每X分钟使用一次cron作业会更好?

3 个回复
最合适的回答,由SO网友:jam 整理而成

最后,我用jQuery和ajax解决了

 jQuery( \'.post-type-property #post\' ).submit( function( e ) {
    
    if(!(checkMetaFields() && checkCategories())){ //some validation functions
        
        return false;
        
        }else{
            jQuery.ajax({
            url:"https://demo.site.com/XML/6098123798/gen.php",
            type:"post"
            
            })
            
            
            
        }   
    
     } );

SO网友:Oliver Gehrmann

我认为您应该研究身份转换:https://developer.wordpress.org/reference/hooks/transition_post_status/

页面顶部的解释下面有几个示例。下面是我的一些示例代码:

add_action( \'transition_post_status\', \'nxt_create_news\', 10, 3 );
// Automatically create a news when a wiki post has been published
function nxt_create_news($new_status, $old_status, $nxt_wiki_post) {
    if(\'publish\' === $new_status && \'publish\' !== $old_status && $nxt_wiki_post->post_type === \'wiki\') {
... do something here
}
在您的情况下,旧的\\u状态应为“publish”,新的状态也应为“publish”。确保找到一种方法来防止无休止的循环,但我相信WP纪录片上的例子应该是有用的。:-)

SO网友:mozboz

看来你想要save_post hook 在保存新帖子或更新现有帖子时调用。

确保您的PHP文件已加载(例如。requireinclude) 并具有一个可以调用的函数,然后在保存或更新帖子时运行该函数:

add_action(\'save_post\', \'your_function_name\', 10, 1);
请注意,最后一个参数是您想要从挂钩中获得的参数数量,请参见文档页面。

相关推荐

POSTS_PER_PAGE不在块中工作

我已经为Wordpress编辑器创建了一个新块,我正在尝试使用一个简单的WP\\U查询,但到目前为止$args 除了post_type 背景例如,我想设置posts_per_page 设置为3,但忽略此设置。为什么会这样?<?php wp_reset_postdata(); wp_reset_query(); $latest_news_args = [ \'post_type\' => \'post\',