আমি এটি হুক করে post-new.php
এবং একটি category_id
অনুরোধ পরামিতি পরীক্ষা করে সমাধান করেছি । যদি এটির অস্তিত্ব না থাকে তবে আমি এই পৃষ্ঠাটিতে জমা দেওয়া বিভাগ বিভাগের সাথে একটি ফর্ম প্রদর্শন করি এবং তারপরে কল করি exit()
যাতে নিয়মিত পোস্ট ফর্মটি প্রদর্শিত না হয়। যদি এটি বিদ্যমান থাকে তবে আমি এর জন্য একটি হুক সেট আপ wp_insert_post
করব যাতে বিভাগটি যুক্ত হবে। এই কাজ করে কারণ একটি নতুন পোস্ট ইতিমধ্যে মাধ্যমে ডাটাবেসের মধ্যে তৈরি করা হয় ফাংশন , এবং আমরা আরও, ট্যাগ, বা অন্যান্য (মেটা) সামগ্রী যোগ করতে পারেন। ফর্মটি এর পরে "নতুন" নতুন সামগ্রীর সাথে রেন্ডার করা হয়।get_default_post_to_edit()
add_filter( 'load-post-new.php', 'wpse14403_load_post_new' );
function wpse14403_load_post_new()
{
$post_type = 'post';
if ( isset( $_REQUEST['post_type'] ) ) {
$post_type = $_REQUEST['post_type'];
}
// Only do this for posts
if ( 'post' != $post_type ) {
return;
}
if ( array_key_exists( 'category_id', $_REQUEST ) ) {
add_action( 'wp_insert_post', 'wpse14403_wp_insert_post' );
return;
}
// Show intermediate screen
extract( $GLOBALS );
$post_type_object = get_post_type_object( $post_type );
$title = $post_type_object->labels->add_new_item;
include( ABSPATH . 'wp-admin/admin-header.php' );
$dropdown = wp_dropdown_categories( array(
'name' => 'category_id[]',
'hide_empty' => false,
'echo' => false,
) );
$category_label = __( 'Category:' );
$continue_label = __( 'Continue' );
echo <<<HTML
<div class="wrap">
<h2>{$title}</h2>
<form method="get">
<table class="form-table">
<tbody>
<tr valign="top">
<th scope="row">{$category_label}</th>
<td>{$dropdown}</td>
</tr>
<tr>
<td></td>
<th><input name="continue" type="submit" class="button-primary" value="{$continue_label}" /></th>
</tbody>
</table>
<input type="hidden" name="post_type" value="{$post_type}" />
</form>
</div>
HTML;
include( ABSPATH . 'wp-admin/admin-footer.php' );
exit();
}
// This function will only be called when creating an empty post,
// via `get_default_post_to_edit()`, called in post-new.php
function wpse14403_wp_insert_post( $post_id )
{
wp_set_post_categories( $post_id, $_REQUEST['category_id'] );
}