新しい投稿を挿入しながらどのように私はユニークなスラグを作成することができます..
私は私が投稿を照会し、ユニークなスラッグを作成するためにレコードを比較することができることを知っていますが
私は同時に独特のスラグのポストを挿入したいです。
私は投稿のタイトルとその投稿に必要なデータを持っていて、wpqueryでそれを挿入したいとしましょう。
私はstと投稿を挿入するとき。好き
$my_post = array(
'post_title' => 'My post',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array(8,39)
);
// Insert the post into the database
wp_insert_post( $my_post );
スラグを自動的に処理します。
この投稿を挿入して、挿入後にphpリダイレクトで開きます。
あなたはそれについて考える必要はありません - WordPressがこれを引き受けます。
wp_insert_post
ソースコード ...を見てみましょう。
3203 行目にはあります。
if ( empty($post_name) ) {
if ( !in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) ) {
$post_name = sanitize_title($post_title);
} else {
$post_name = '';
}
} else {
// On updates, we need to check to see if it's using the old, fixed sanitization context.
$check_name = sanitize_title( $post_name, '', 'old-save' );
if ( $update && strtolower( urlencode( $post_name ) ) == $check_name && get_post_field( 'post_name', $post_ID ) == $check_name ) {
$post_name = $check_name;
} else { // new post, or slug has changed.
$post_name = sanitize_title($post_name);
}
}
そのため、post_name
が設定されていない場合、WPはpost_title
から生成します。
それから 3325 の行に:
$post_name = wp_unique_post_slug( $post_name, $post_ID, $post_status, $post_type, $post_parent );
そのため、WPはpost_name
の一意性を考慮します。
WordPressは独特のナメクジを世話します。投稿の作成後に投稿にリダイレクトしたい場合は、投稿が成功した場合にwp_insert_poost()
によって返される投稿IDを使用してパーマリンクを取得できます。
$my_post = array(
'post_title' => 'My post',
'post_content' => 'This is my post.',
'post_status' => 'publish',
'post_author' => 1,
'post_category' => array(8,39)
);
// Insert the post into the database
$post_id = wp_insert_post( $my_post );
// Check there was no errors
if( $post_id && ! is_wp_error( $post_id ) ) {
wp_redirect( get_the_permalink( $post_id ) );
exit;
}