在插入立柱时生成唯一的弹丸

时间:2015-06-09 作者:kutlus

如何在插入新帖子时创建唯一的slug。。

我知道我可以查询帖子并比较记录来创建唯一的slug,但是

我想同时插入一个带有唯一slug的帖子。

假设我有帖子标题和帖子所需的数据,并想用wpquery插入它,wordpress是否有一个函数可以自行处理所有内容。。

当我插入带有st.like的帖子时

$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重定向打开它。。

2 个回复
SO网友:Krzysiek Dróżdż

你不必考虑,WordPress会处理好的。

让我们看看wp_insert_post source code...

在线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.

SO网友:cybmeta

WordPress将关注unique slug。如果要在创建后重定向到帖子,可以使用返回的帖子ID获取永久链接wp_insert_poost() 如果成功:

$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;

}

结束

相关推荐

Display Count of posts

我正在尝试创建一个计数器,该计数器将显示一个类别页面的页码,后跟页面计数,其中每页有一篇文章。例如,如果一个类别中有10个职位:1/10, 2/10, 等等。我能够使用@PieterGoosen提供的代码显示页码(How to use global post counter in the loop?) 但我很难弄清楚如何显示页数。