在插件中获取帖子ID

时间:2016-07-21 02:30:58

标签: php wordpress

我在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()功能时,我的错误就会消失。我做错了什么?

谢谢,

1 个答案:

答案 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

请重新阅读我上面提供的链接,因为它们提供了很好的示例,并向您展示如何使用函数,方法,钩子等。