簡體   English   中英

在插件中獲取發布ID

[英]get post Id in plugin

我正在用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()函數時,錯誤將消失。 我究竟做錯了什么?

謝謝,

您根本不需要get_post ,並且錯誤地使用了publish_post鈎子和add_action函數。

另外,看看WPDB類 如果您的表與WordPress表位於同一數據庫和架構中,則無需使用mysqli_connect-WordPress已為您連接到數據庫!

還要注意,永遠不要將值傳遞到字符串中,以用作SQL語句的一部分! 這是一個巨大的安全風險! 始終使用准備好的語句和參數 (WPDB也提供此功能)。

嘗試這個:

function try_insert($post_id, $post)
{
    // Pull in the global WPDB variable WordPress creates
    global $wpdb;

    $test02 = 333243;
    $test03 = 222;

    /*
     * Insert record into the table "post_data02" with the values:
     *   "post_id" => The ID in $post_id passed by WordPress,
     *   "condition_code" => The number in $test03 (currently 222)
    */
    $insert = $wpdb->insert( 'post_data02',
        [ 'post_id' => $post_id, 'condition_code' => $test03 ],
        [ '%d',                  '%d' ]
    );

    if( $insert !== false ) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $link -> error;
    }

}
add_action( 'publish_post', 'try_insert', 10, 2);

請重新閱讀我上面提供的鏈接,因為它們提供了出色的示例,並向您展示了如何使用函數,方法,掛鈎等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM