URLs de resources de plug-in?

Estou tentando adicionar um script e arquivo css para o meu plugin no header do administrador.

Existe uma function semelhante a get_bloginfo('url') que eu poderia usar para fazer uma referência aos arquivos corretamente, sem precisar de url de código rígido?

Solutions Collecting From Web of "URLs de resources de plug-in?"

Estou tentando adicionar um script e arquivo css para o meu plugin no header do administrador.

Então, como qualquer desenvolvedor bom, você deveria estar usando wp_enqueue_script ou wp_enqueue_style para que você não esteja codificando esses scripts / estilos incluídos no plugin (o que significa que um usuário pode desativá-los se ele / ela precisar).

http://codex.wordpress.org/Function_Reference/wp_enqueue_script
http://codex.wordpress.org/Function_Reference/wp_enqueue_style

Se os estilos / scripts só forem carregados na (s) página (s) do plugin, então você deve usar alguma lógica condicional dentro de um gancho de cabeça de administração genérico ou, em alternativa, ativar algumas especificações especificamente para a (s) página (s).

Primeiro add_menu_page o gancho para a sua página ou páginas, este é o quarto parâmetro usado nas chamadas para add_menu_page e o quinto em add_submenu_page , então vamos tomar este exemplo (tirado diretamente desta página de codex ) e imagine que estes representam suas páginas de plugins .

 add_menu_page('Page title', 'Top-level menu title', 'manage_options', 'my-top-level-handle', 'my_magic_function'); add_submenu_page( 'my-top-level-handle', 'Page title', 'Sub-menu title', 'manage_options', 'my-submenu-handle', 'my_magic_function'); 

Nesse caso, os dois ganchos (ou alças) são my-top-level-handle e my-submenu-handle respectivamente.

Agora, para encheckboxr scripts ou estilos no header de administração especificamente para páginas de plugins, existem algumas maneiras diferentes de que possamos ir sobre isso, mas abordarei os dois methods mais óbvios (e meus preferidos).


Método 1

Use os admin_print_scripts-$hook e admin_print_styles-$hook que são específicos para seu plugin e enqueue o CSS / JS para cada página de plugin.

$ hook representa o gancho (ou alça) para uma determinada página de administração, cada página de administração possui uma.

Scripts

Arquivos do Enqueue JS para a página principal e do submenu

 add_action( 'admin_print_scripts-my-top-level-handle', 'enqueue_my_js' ); add_action( 'admin_print_scripts-my-submenu-handle', 'enqueue_my_js' ); function enqueue_my_js() { wp_enqueue_script( .. YOUR ENQUEUE ARGS HERE .. ); } 

Folhas de estilos

Enqueue arquivos de estilos para a página pai e submenu

 add_action( 'admin_print_styles-my-top-level-handle', 'enqueue_my_style' ); add_action( 'admin_print_styles-my-submenu-handle', 'enqueue_my_style' ); function enqueue_my_style() { wp_enqueue_style( .. YOUR ENQUEUE ARGS HERE .. ); } 

Método # 2

Enqueue scripts e estilos em todas as páginas de administrador do seu plugin, englobando os ganchos de cabeça de administração mais genéricos.

admin_print_scripts + admin_print_styles

Com esta abordagem, usaremos os ganchos mais genéricos que funcionam para cada página de administrador, mas com uma pequena lógica condicional podemos determinar o tipo de página que estamos vendo e retornar se não for uma das páginas do plugin (portanto, essencialmente o mesmo efeito que a primeira abordagem).

Scripts

Enqueue JS para qualquer uma das páginas do plugin

 add_action( 'admin_print_scripts', 'enqueue_my_js' ); function enqueue_my_js() { global $parent_file; if( 'my-top-level-handle' != $parent_file ) return; wp_enqueue_script( .. YOUR ENQUEUE ARGS HERE .. ); } 

Estilos

Enqueue CSS para qualquer uma das páginas do plugin

 add_action( 'admin_print_styles', 'enqueue_my_style' ); function enqueue_my_style() { global $parent_file; if( 'my-top-level-handle' != $parent_file ) return; wp_enqueue_style( .. YOUR ENQUEUE ARGS HERE .. ); } 

$parent_file só irá corresponder às páginas do seu plugin, então simplesmente return; quando não é uma partida, ou seja. Pare de executar o código dentro da function, de modo que o enqueue só pode triggersr quando $parent_file corresponde ao identificador.


Adicional

Se você pretende enqueue um script ou estilo para mais de uma página, você pode tornar esse processo muito mais fácil ao registrar o script.

http://codex.wordpress.org/Function_Reference/wp_register_script
http://codex.wordpress.org/Function_Reference/wp_register_style

A vantagem de registrar um script ou estilo é que chamar esse arquivo, em seguida, torna-se um caso simples de …

 wp_enqueue_script( 'my_script_handle' ); 

… o mesmo se aplica para o equivalente de estilo.

Isso evita qualquer necessidade de fornecer um caminho, dependencies e assim por diante com cada chamada emqueue.

Eu tive que envolver a resposta para o final devido ao tempo, mas espero ter fornecido informações valiosas suficientes para trabalhar. Se você ficar preso tentando entender algo, basta enviar um comentário ..;)

Se você quiser o URL para um arquivo em seu diretório de plug-in, você deve usar plugins_url() , assim:

 // The url to the `wordpress.png` file in the `images` subdirectory of the plugin plugins_url( '/images/wordpress.png', __FILE__ ); 

Lembre-se, as pessoas podem mudar o nome do seu diretório de plug-in , portanto, não o codifique em seu arquivo.

você pode usar WP_PLUGIN_URL como assim:

 WP_PLUGIN_URL .'/plugin_directory/filename.css' 

ou você pode definir o seu próprio como este:

 define( 'PLUGIN_DIR', dirname(__FILE__).'/' ); 

no arquivo principal do plugin.

espero que isto ajude.

Normalmente uso isso:

 $baseFileDir = WP_PLUGIN_URL.'/'.str_replace(basename( __FILE__),"",plugin_basename(__FILE__)); 

Em seguida, para fazer referência a um arquivo dentro de uma pasta chamada “resources” no seu diretório principal do plugin, você faria:

 echo $baseFileDir . 'resources/file.php';