如何将样式添加到分类编辑页面

时间:2017-04-03 作者:Alen

是否在特定的分类页面中加载自定义样式?例如,这两页:

wp-admin/edit-tags.php?taxonomy=news-category&post_type=news
wp-admin/term.php?taxonomy=news-category&..
我给admin添加了一个样式,但其他页面也被编辑了,在这两个自定义帖子类型分类的页面中,我们如何加载样式?

2 个回复
最合适的回答,由SO网友:Paul \'Sparrow Hawk\' Biron 整理而成

您可以这样做:

add_action (\'admin_enqueue_scripts\', \'wpse_style_tax\') ;

function
wpse_style_tax ()
{
    // these 3 globals are set during execution of {edit-tags,term}.php
    global $pagenow, $typenow, $taxnow ;

    if (!in_array ($pagenow, array (\'edit-tags.php\', \'term.php\')) {
        return ;
        }
    if (\'news\' != $typenow) {
        return ;
        }
    if (\'news-category\' != $taxnow) {
        return ;
        }

    wp_enqueue_style (\'wpse_my_handle\', \'path_to_css_file\', ...) ;

    return ;
}

SO网友:Nathan Johnson

我知道已经有了一个公认的答案,但这里有另一种方法可以使用挂钩完成同样的事情。

//* Make sure we\'re on the load edit tags admin page
add_action( \'load-edit-tags.php\', \'wpse_262299_edit_tags\' );
add_action( \'load-term.php\', \'wpse_262299_edit_tags\' );

function wpse_262299_edit_tags() {

  //* Return early if not the news post type
  if( \'news\' !== get_current_screen()->post_type ) {
    return;
  }

  $taxonomies = [ \'news-category\', \'other-taxonomy\' ];
  //* Add actions to $taxonomy_pre_add_form and $taxonomy_pre_edit_form
  array_filter( $taxonomies, function( $taxonomy ) {
    add_action( "{$taxonomy}_pre_add_form",  \'wpse_262299_enqueue_style\' );
    add_action( "{$taxonomy}_pre_edit_form", \'wpse_262299_enqueue_style\' );
  });
}

function wpse_262299_enqueue_style( $taxonomy ) {
  //* All the logic has already been done, do enqueue the style
  wp_enqueue_style( \'wpse-262299\', plugins_url( \'style.css\', __FILE__ ) );
}