Antes de começar, quero reconhecer que existem alguns artigos realmente bons direcionados a enfileirar condicionalmente scripts com base no conteúdo da página / postagem.
- Desenvolvimento de plug-in WordPress - Como incluir CSS e JavaScript condicionalmente e somente quando necessário pelos posts
- Como carregar o JavaScript como um mestre do WordPress
Eles são ótimos, mas são muito mais avançados do que o que eu quero fazer.
Sinto que a resposta está usando a is_page()
função interna ( codex ), mas quando tento usá-la, o site é interrompido ou simplesmente não funciona.
Eu acho que estou apenas executando a lógica condicional no lugar errado.
Aqui está o que eu tentei adicionar às minhas funções.php:
function wpse39130_register_more_stylesheets() {
wp_register_style( 'stylesheet_name', get_stylesheet_directory_uri() . '/stylesheet.css' );
}
add_action( 'init', 'wpse39130_register_more_stylesheets' );
function wpse39130_conditionally_enqueue_my_stylesheet() {
// only enqueue on product-services page slug
if ( is_page( 'products-services' ) ) {
wp_enqueue_style( 'stylesheet_name' );
}
}
add_action( 'wp_enqueue_scripts', 'wpse39130_conditionally_enqueue_my_stylesheet' );
Quando removo a parte condicional, a folha de estilo é enfileirada com êxito, então eu sei que funciona.
css
conditional-content
wp-enqueue-style
Evan Mattson
fonte
fonte
Respostas:
Copiei colei seu código no meu ambiente de desenvolvimento, não mudei nada além do nome da página e ele funciona muito bem. Tem certeza de que não está sendo enfileirado e apenas apontou errado ou que a página não foi nomeada incorretamente ou algo assim?
fonte
O que você tem é certo - você está apenas conectando-o à ação errada. Experimente a ação "wp" em vez de "init". Quando o init é executado, o is_page () ainda não funcionará corretamente.
Edição: Eu estou errado. Eu pensei que você tinha add_my_stylesheet ligado ao init, mas você não. is_page deve funcionar a partir da ação enqueue_scripts. Desculpe ... continue ...
fonte
Eu estava tentando seguir o mesmo código e ver se eu posso obter o mesmo resultado, o que eu notei que is_page () não funciona conforme o esperado. segui a variável global $ post e verifiquei o nome da categoria / slug e, posteriormente, use a comparação simples de texto para decidir a ação.
O valor da categoria, se apenas uma categoria (não subcategoria) for
Para Subcategoria, você terá a seguinte variável preenchida
Agora, com base na sua necessidade, use o código abaixo, como eu estou usando para verificar o nome da subcategoria:
Código completo:
Exemplo: * Nenhum CSS extra http://whatsq.com/category/gst16/
* CSS extra com experiência da categoria acima apenas http://whatsq.com/information-technology/shopping-information-technology/mothers-day-gift-plan-show-mom-the-love-with-flowers-and- e mais/
fonte