我创建了一个自定义类型为“ portfolio”的帖子,如下所示: br />
$args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'query_var' => true,
    //'menu_icon' => get_stylesheet_directory_uri() . '/article16.png',
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => 4,
    'taxonomies' => array('post_tag','category'),
    'supports' => array('title','editor','comments','trackbacks','revisions','custom-fields','page-attributes','thumbnail', 'excerpt', 'tags')
  ); 

register_post_type( 'portfolio' , $args );


虽然我曾经做过这项工作,但我无法弄清楚它是否仅为此页面加载脚本。现在,我将它们与wp_enqueue_script的其余部分放在一起,例如:

add_action("admin_init", "admin_init");
function admin_init(){ // add_meta_box( $id, $title, $callback, $page, $context, $priority ); 
  add_meta_box("media", "Media Type", "media", "portfolio", "side", "high");
  add_meta_box("map_meta", "Mapping Info", "map_meta", "portfolio", "normal", "high");
}


,但是这些都不适合我。如何将这些脚本加载到管理页面中?更好的是,如何专门针对项目组合自定义帖子类型的编辑页面加载它们?

评论

仅供参考:入队不应该继续进行in ..(很多人都这样做,但这不是入队的正确位置)..

#1 楼

尝试使用此代码将脚本添加到投资组合自定义帖子类型的编辑页面。

add_action( 'admin_print_scripts-post-new.php', 'portfolio_admin_script', 11 );
add_action( 'admin_print_scripts-post.php', 'portfolio_admin_script', 11 );

function portfolio_admin_script() {
    global $post_type;
    if( 'portfolio' == $post_type )
    wp_enqueue_script( 'portfolio-admin-script', get_stylesheet_directory_uri() . '/admin.js' );
}


评论


不再准确。 @Smartik答案现在是正确的方法。

–亚伦
17-2-23在22:11

#2 楼

我将发布一个更好的解决方案,因为可接受的答案是旧的,并且没有使用正确的钩子。

第二:忘记任何全局变量。使用当前的屏幕对象执行不同的检查。

以下是现成的复制粘贴代码:

柱状弹头。

#3 楼

// Enter custom JS TO ADMIN AREA

add_action( 'admin_print_scripts-post-new.php', 'banner_admin_script', 11 );
add_action( 'admin_print_scripts-post.php', 'banner_admin_script', 11 );

function banner_admin_script() {
    global $post_type;
    if ( $post_type == 'banner' )
        wp_enqueue_script( 'portfolio-admin-script', plugins_url( '/js/admin.js', 
            __FILE__), '', '', true ); // "TRUE" - ADDS JS TO FOOTER
}


我对代码进行了一些更改以适合我:


我将get_stylesheet_directory_uri() . '/admin.js'更改为plugins_url( '/js/admin.js', __FILE__),-这是必需的,因为我已经开发了用于横幅广告,这是更好的解决方案,而不是在functions.php内创建CPT
我添加了“ true”以在页脚区域而不是头部发送代码-缩短了加载时间