Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在WordPress中发布新帖子时,您将如何/在何处向不同的表添加自定义的INSERT MySQL查询?_Php_Wordpress_Post_Insert_Publish - Fatal编程技术网

Php 在WordPress中发布新帖子时,您将如何/在何处向不同的表添加自定义的INSERT MySQL查询?

Php 在WordPress中发布新帖子时,您将如何/在何处向不同的表添加自定义的INSERT MySQL查询?,php,wordpress,post,insert,publish,Php,Wordpress,Post,Insert,Publish,我试图将一篇新发表的文章的记录放在一个单独的db表中,而不是一篇文章发布所需的常规过程 我尝试进入我的wp includes文件夹中的post.php,并在函数wp\u insert\u post()中添加一个查询,但这会添加自动草稿的记录以及每次更新的记录 我还尝试将insert语句包含在同一文件的函数wp\u publish\u post()函数中。这没什么用 这些函数中是否有一个特定的部分,或者可能是一个完全不同的文件,我应该将我的INSERT语句放入其中,以便在每次发布新帖子时添加一条记

我试图将一篇新发表的文章的记录放在一个单独的db表中,而不是一篇文章发布所需的常规过程

我尝试进入我的
wp includes
文件夹中的
post.php
,并在
函数wp\u insert\u post()
中添加一个查询,但这会添加
自动草稿的记录以及每次更新的记录

我还尝试将insert语句包含在同一文件的
函数wp\u publish\u post()
函数中。这没什么用


这些函数中是否有一个特定的部分,或者可能是一个完全不同的文件,我应该将我的
INSERT
语句放入其中,以便在每次发布新帖子时添加一条记录?

导航到
post.php
文件,该文件位于
wp includes
文件夹中

找到
wp\u insert\u post()
函数,并在
return
语句之前使用此代码作为SQL查询

if ($postarr['post_status'] == 'publish') {

    try {
        $db = new PDO('mysql:dbname=YOURDBNAME;host=YOURHOST;charset=utf8',
                        'YOURUSERNAME',
                        'YOURPASSWORD');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
        $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    }
    catch(PDOException $ex) {
        echo "did not connect...";
    }

    $sth = $db->prepare("INSERT INTO YourTable VALUES (?, ?, 0)");
    $sth->execute(array($value1, $value2));

}

正如Marc B所指出的,您应该尝试使用挂钩,这是您想要实现的目标的最佳解决方案。创建一个自定义插件并使用所需的挂钩。如果您想在后期插入或更新时插入或更新任何内容,则无需在基础文件中进行更改,而是使用wordpress挂钩。我认为论坛链接会对你有所帮助。