[英]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.