我在wordpress中制作一个插件。当我点击add new post
上的发布按钮时,我正在尝试获取帖子ID。现在,当我使用get post函数时,我得到一个内部错误(500)。
我现在正在使用_POST['post']
,但如何使用wordpress函数获取帖子ID?
这是我的代码:
//require the php
require_once( FACEBOOK_API_PLUGIN_DIR . 'js/databaseConnection.php' );
databaseConnection.php上的代码:
function get_post()
{
global $wp_query;
$thePostID = $wp_query->post->ID;
return $thePostID;
}
function try_insert($post_id)
{
$test02 = 333243;
$test03 = 222;
$link = @mysqli_connect(
'localhost',
'root',
'',
'wordpress'
) or die("connection failed");
$sql = "INSERT INTO post_data02 (post_id, condition_code) VALUES ('$post_id','$test03')";
if ($link->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $link -> error;
}
$link->close();
}
add_action( 'publish_post', 'try_insert', get_post());
另外,当我禁用get_post()
功能时,我的错误就会消失。我做错了什么?
谢谢,
答案 0 :(得分:1)
您根本不需要class FtSite(Base):
__tablename__ = "ft_site"
serial_si = Column(INTEGER, primary_key=True)
partition_id = Column(INTEGER)
s_sequence = Column(INTEGER, primary_key=True)
value = Column(DOUBLE)
,并且您正在使用publish_post挂钩和add_action功能错误。
此外,请查看WPDB class。如果您的表与WordPress表在同一个数据库和模式中,则不需要使用mysqli_connect - WordPress已经为您连接到数据库了!
另请注意,您永远不应将值传递给字符串以用作SQL语句的一部分!这是一个巨大的安全风险!总是使用prepared statements and parameters(WPDB也提供此功能)。
试试这个:
get_post
请重新阅读我上面提供的链接,因为它们提供了很好的示例,并向您展示如何使用函数,方法,钩子等。