Php 在WordPress中发布新帖子时,您将如何/在何处向不同的表添加自定义的INSERT MySQL查询?
我试图将一篇新发表的文章的记录放在一个单独的db表中,而不是一篇文章发布所需的常规过程 我尝试进入我的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语句放入其中,以便在每次发布新帖子时添加一条记
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挂钩。我认为论坛链接会对你有所帮助。