Php 如何在publish\u post hook上获取正在wordpress上发布的帖子数据?

Php 如何在publish\u post hook上获取正在wordpress上发布的帖子数据?,php,wordpress,Php,Wordpress,我编写了这段代码,用于使用发布帖子挂钩上发布的帖子数据,但我不知道如何获取帖子的值 add_action('publish_post','fetch_post'); function fetch_post() { global $wpdb; $sqlCommand = "SELECT post_title, post_name FROM wp_posts WHERE post_type='post' AND post_status='publish' ORDER BY ID D

我编写了这段代码,用于使用发布帖子挂钩上发布的帖子数据,但我不知道如何获取帖子的值

add_action('publish_post','fetch_post');

function fetch_post()
{
    global $wpdb;
    $sqlCommand = "SELECT post_title, post_name FROM wp_posts WHERE post_type='post' AND post_status='publish' ORDER BY ID DESC LIMIT 1";
    $posts = $wpdb->get_results($sqlCommand);
    print_r($posts);

    $sqlCommand = "INSERT INTO testing (post_title,post_name) VALUES(%s,%s)";
    $wpdb->query($wpdb->prepare($sqlCommand,$posts[0]->post_title,$posts[0]->post_name));
}
这段代码给了我那篇文章,但是当我们更新一篇文章时,这个函数会再次被调用,它会返回最后一篇文章,但是我想要更新或发布的文章


提前感谢。

您可以使用以下代码代替您的代码:

<?php

add_action('publish_post', 'fetch_post', 10, 2);
function fetch_post($id, $post) {
    global $wpdb;

    $sqlCommand = "INSERT INTO testing (post_title,post_name) VALUES(%s,%s)";
    $wpdb->query($wpdb->prepare($sqlCommand, $post->post_title, $post->post_name));
}

?>
我所做的重大改变是,我现在使用publish_post钩子发送给被调用函数的参数。第一个参数是发布的帖子ID,第二个参数是更新帖子的整个帖子对象


因此,这样我们也避免了来自您提交的示例代码的第一个查询。

嘿,您能告诉我这里10,2个参数的平均值吗?当然!10是优先级优先级优先级越高,执行的越晚,2是发送到被调用函数的参数数。有关更多信息,请参阅。