首页 > 解决方案 > 以编程方式创建后如何转到新的 WordPress 帖子?

问题描述

我创建了一个 PHP 函数,它将根据添加到页面上的内容自动创建一个新的 WordPress 帖子。但是,它只保留在当前页面上,但我希望它转到那个新创建的帖子。我怎样才能重定向到那个帖子?这是我到目前为止所拥有的:

<?php

if(isset($_POST['submitButton']))
{
    $storyTitle=$_POST['storyTitle'];
    $storyCategory=wp_strip_all_tags( $_POST['storyCategory'] );
    $storyTags=$_POST['storyTags'];
    
    switch ($storyCategory) {
      case "Action":
        $storyCategory='3';
        break;
      case "Adventure":
        $storyCategory='4';
        break;
      case "Comedy":
        $storyCategory='5';
        break;
      case "Fanfiction":
        $storyCategory='6';
        break;
      case "Fantasy":
        $storyCategory='9';
        break;
      case "General Fiction":
        $storyCategory='12';
        break;
      case "Horror":
        $storyCategory='13';
        break;
      case "Mystery":
        $storyCategory='8';
        break;
      case "Poetry":
        $storyCategory='14';
        break;
      case "Romance":
        $storyCategory='7';
        break;
      case "Science Fiction":
        $storyCategory='10';
        break;
      case "Short Story":
        $storyCategory='11';
        break;
      default:
        $storyCategory=$_POST['storyCategory'];
    }
    
    $my_post = array(
        'post_type' => 'post',
        'post_title'    => wp_strip_all_tags( $_POST['storyTitle'] ),
        'post_content'  => '',
        'post_status'   => 'publish',
        'post_author'   => 1,
        'post_category' => explode(',', $storyCategory),
        'tags_input' => explode(',', $storyTags)
);
    
    if( null == get_page_by_title( $title ) ) {
        $post_id=wp_insert_post($my_post);
        //wp_redirect( site_url()."?post=".$post_id);
    }
    
}
?>

标签: phpwordpress

解决方案


您可以使用get_permalink获取帖子网址。检查下面的代码。

<?php

if(isset($_POST['submitButton']))
{
    $storyTitle=$_POST['storyTitle'];
    $storyCategory=wp_strip_all_tags( $_POST['storyCategory'] );
    $storyTags=$_POST['storyTags'];
    
    switch ($storyCategory) {
      case "Action":
        $storyCategory='3';
        break;
      case "Adventure":
        $storyCategory='4';
        break;
      case "Comedy":
        $storyCategory='5';
        break;
      case "Fanfiction":
        $storyCategory='6';
        break;
      case "Fantasy":
        $storyCategory='9';
        break;
      case "General Fiction":
        $storyCategory='12';
        break;
      case "Horror":
        $storyCategory='13';
        break;
      case "Mystery":
        $storyCategory='8';
        break;
      case "Poetry":
        $storyCategory='14';
        break;
      case "Romance":
        $storyCategory='7';
        break;
      case "Science Fiction":
        $storyCategory='10';
        break;
      case "Short Story":
        $storyCategory='11';
        break;
      default:
        $storyCategory=$_POST['storyCategory'];
    }
    
    $my_post = array(
        'post_type' => 'post',
        'post_title'    => wp_strip_all_tags( $_POST['storyTitle'] ),
        'post_content'  => '',
        'post_status'   => 'publish',
        'post_author'   => 1,
        'post_category' => explode(',', $storyCategory),
        'tags_input' => explode(',', $storyTags)
);
    
    if( null == get_page_by_title( $title ) ) {
        $post_id = wp_insert_post($my_post);
        if( $post_id ){
            wp_redirect( get_permalink( $post_id ) );
            exit;
        }
    }
    
}
?>

推荐阅读