1

ワードプレスの回答を尋ねることを考えましたが、彼らはそれが「プラグインのこと」だと言うでしょう..同意しない場合は、遠慮なく彼らに渡してください。

ユーザーが新しい投稿ボタンをクリックすると、利用可能なカテゴリのドロップダウン メニューを提供する functions.php でこのコードを使用しています。これにより、新しい空白の投稿が作成される前に、カテゴリを選択する必要があります。

問題は、「無効な投稿タイプ」エラーが発生し、「管理者」と呼ばれるプラグインにまでさかのぼることです。

新しい投稿が作成されず、アドレス バーが mysite.com/wp-admin/post-new.php?category_id%5B%5D=4&continue=Continue&post_type= でスタックします (type= の後に「post」と表示されます。.. 「無効な投稿タイプ」というエラーボックスが表示されます。

スクリプトが完了しない理由について何か考えを聞きたいです。私が使用しているコードは次のとおりです。

//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'] );
}

更新/詳細情報。さらに調査したところ、最後に向けてコードの一部を非表示からテキストに変更しました。これにより、通常は投稿タイプ「投稿」が自動的に入力される入力フィールドが表示されます。adminimize プラグインは、何も非表示に設定していないにもかかわらず、これを防止しているように見えますか?

<input type="text" name="post_type" value="{$post_type}" />

簡単な解決策は管理者プラグインを使用しないことだと思いますが、新しいサイト所有者にとって物事をシンプルに保つのに非常に役立ちます. これについてプラグインの作成者に尋ねましたが、すぐに回答が得られるとは思っていません - ありがとう

4

1 に答える 1

0

プラグインの作成者 (Frank) が優れたサポートを提供していることがわかりました。彼はこの行に問題があることを発見し、単純にコメントアウトしました。これで、すべてが期待どおりに機能します:)

//extract( $GLOBALS );
于 2012-11-09T08:27:20.363 に答える