web-dev-qa-db-ja.com

/wp-admin/post.phpの管理ウィジェットを作成しますか?

こんにちは、そして前もって助けてくれてありがとう、

私はpost.phpページ内に存在する投稿を編集するためのウィジェットを作成しようとしています(new-post.phpではなく、IDが必要です)。このカスタムウィジェットは、投稿IDを取得し、それを保存するために別のデータベースに送信する予定です。これはajaxを通じて実行され、独自の独立した保存ボタンがあります。

とても単純ですね。私のウィジェットをpost.phpページに表示させる方法がわからないのですが。

これはthemes/myTheme/functions.phpにある私のテストコードです。正しい場所に配置してみてください...しかし、うまくいきません。

function artist_associator_dashboard_widget_function(){
    echo "Hello world";
}

function artist_associator_add_dashboard_widget(){
    wp_add_dashboard_widget('artist_associator_dashboard_widget', 'Artist Associator', 'artist_associator_dashboard_widget_function');
}
add_action('wp_dashboard_setup','artist_associator_add_dashboard_widget');

私はまた有望に見えたがそれがうまくいかなかった、私の機能を見つけることができなかった他のいくつかの行動を入れることを試みた。

2
user2645

1つには、Dashboardウィジェット(この例で使用しているもの)は、メインのwordpress管理ページ用です。

私はあなたが欲しいのはこのチュートリアル だと思います 。投稿画面にメタボックスを追加する方法については、 add_meta_box もご覧ください。これが私の現在のプロジェクトからのコードで、投稿編集画面にメタボックスを追加するのに役立ちます。

$m_visitor_info = array(
        'id' => 'argus_edit_visitor',
        'name' => 'Visitor Information',
        'cb' => array( &$this, '_argus_edit_visitor' ),
        'type' => 'visitor',
        'context' => 'normal',
        'priority' => 'high',
    );

add_meta_box( $m_visitor_info['id'], $m_visitor_info['name'], $m_visitor_info['cb'], $m_visitor_info['type'], $m_visitor_info['context'], $m_visitor_info['priority'] );

好みに合わせてすべてを変更してください。基本的にこれは私に投稿のための主要な入力選択として現れるカスタムメタボックスを作成します(私はエディターやタイトルのサポートを使いません)。コンテキストは、「通常」、「詳細」、または「サイド」のいずれかです。なんらかの理由でデフォルトになっていますが、 'advanced'の使用法は見つかりませんでした。

とにかく、あなたはおそらく既存のページを編集しているのか、新しい投稿を作成しているのかを確認するためにチェックを入れる必要があるでしょう。

ただし、もっと良い解決策はおそらく、 add_action を使用してsave_postイベントをフックし、そこでajaxを使用して投稿IDを外部データベースに保存することです。

2
Zack