it-swarm-ja.com

"ページの追加" Fuckはありますか?

私は "Add page"リンクのクリックに対応するアクションフックを探しています。何か案が?

ありがとうございます。

1
Kaaviar

投稿エディターを表示する管理ページをターゲットにしたい場合は、スクリプト用かスタイル用かにかかわらず、2つの場所にフックする必要があります。

上の2つはスクリプトに、下の2つはスタイルに使用します。

// Script action for the post new page    
add_action( 'admin_print_scripts-post-new.php', 'example_callback' );

// Script action for the post editting page    
add_action( 'admin_print_scripts-post.php', 'example_callback' );

// Style action for the post new page    
add_action( 'admin_print_styles-post-new.php', 'example_callback' );

// Style action for the post editting page 
add_action( 'admin_print_styles-post.php', 'example_callback' );

特定の投稿タイプをターゲットにしたい場合は、コールバック関数内で単にグローバル$post_typeのようにします。

function example_callback() {
    global $post_type;
    // If not the desired post type bail here.
    if( 'your-type' != $post_type )
        return;

    // Else we reach here and do the enqueue / or whatever
}

(スタイルではなく)スクリプトをキューに登録している場合、admin_enqueue_scriptsと呼ばれる以前に実行されるフックがあり、最初の引数としてフックを渡すため、スクリプトに対しても同様に行うことができます。上記の2つのadmin_enqueue_scriptsアクションの代わりにadmin_print_scriptsにフックします)。

function example_callback( $hook ) {
    global $post_type;

    // If not one of the desired pages bail here.
    if( !in_array( $hook, array( 'post-new.php', 'post.php' ) ) )
        return;

    // If not the desired post type bail here.
    if( 'your-type' != $post_type )
        return;

    // Else we reach here and do the enqueue / or whatever
}

これらのフックはまさに​​このタイプのもののために存在します。特定のユースケースで要件が指定されていない限り、admin_initのように早く起動する必要はありません。よくわからない場合は、コードをそれほど早く起動する必要がない可能性があります。

2
t31os

admin_initフックを使用して、次のようにページングするための条件式を追加することができます。

add_action('admin_init','load_my_code');
function load_my_code() {
  global $typenow;
  if (empty($typenow) && !empty($_GET['post'])) {
    $post = get_post($_GET['post']);
    $typenow = $post->post_type;
  }
  if (is_admin() && $typenow=='page') {
    //do your stuff here
  }
}
2
Bainternet