思考询问wordpress的答案,但他们会告诉我这是一个“插件”。如果你不同意,然后随意将它传递给他们。脚本与管理插件的冲突
我在我的functions.php中使用这段代码,当用户点击新帖子按钮时,它提供了可用类别的下拉菜单。这迫使他们在创建新空白文章之前选择一个类别。
问题是我收到“无效的帖子类型”错误,并将其追溯到名为“adminimizer”的插件。
新邮从来没有被创建,地址栏卡住在mysite.com/wp-admin/post-new.php?category_id%5B%5D=4 &继续=继续& post_type =(应该说“后“类型= ..我得到一个错误框中说”无效的帖子类型“
我很想听听任何想法,为什么我的脚本可能不完成下面是我使用的代码:
//ADD DROPDOWN MENU TO CHOOSE NEW POST CATEGORY (CHOOSE THE CAT ID’S YOU WANT TO APPEAR)
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(
'orderby' => 'name',
'include' => '3, 4',
'name' => 'category_id[]',
'hide_empty' => false,
'echo' => false,
));
$category_label = __('Create New');
$continue_label = __('Continue');
echo <<<HTML
<div class="wrap">
<h2>{$title}</h2>
<form method="get">
<table class="orange">
<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']);
}
UPDATE /更多的信息。在进一步的调查,我改了一下我对从隐藏到文本的结束码。这揭示了一个输入字段通常会自动填充帖子类型“帖子”。管理插件似乎可以防止这种情况发生,即使我没有设置它来隐藏任何东西?
<input type="text" name="post_type" value="{$post_type}" />
我想最简单的办法将只是不使用adminimizer插件,但它是非常有用的,让事情变得简单了新的网站所有者。我已经向插件作者询问了这个问题,但是不要期望能很快得到答案 - 谢谢
得到的答案:事实证明,插件作者(弗兰克)提供了很大的支持。他发现这条线存在问题,并简单地评论说。现在一切正常如预期:) // extract($ GLOBALS); – user22537