Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, tudo bem?
Eu estou criando alguns temas premium wordpress e criei um painel onde o usuário seleciona todas as cores e estilos do CSS, porém para que estas cores e estilos tenham efeito no site, elas precisam ser inseridas pelo php no sass ou no css diretamente, ai que esta o problema.
Eu fiz o seguinte, criei um arquivo chamado custom.php mais ou menos assim:
<style>
#loader p {
color: <?php echo $preloader_typography_color; ?>;
font-style: <?php echo $preloader_typography_style; ?>;
font-family: <?php echo $preloader_typography_font; ?>;
font-size: <?php echo $preloader_typography_size; ?>;
line-height: <?php echo $preloader_typography_line; ?>;
text-align: <?php echo $preloader_typography_align; ?>;
}
</style>
E dou um include nele bem no header, funciona, porém eu não sei se é a solução mais indicada, como os temas premium são para venda, eu fiquei na dúvida se esta é a maneira correta de fazer.
Eu uso muito sass para desenvolver e como tem as variáveis do sass eu pensei se o correto não seria o sass ser compilado diretamente no navegador e estes dados serem inseridos diretamente nas variáveis do sass, mas não sei se isto é possível.
Então qual a sua opinião, a forma que estou fazendo é a mais indicada?? Você conhece alguma outra solução mais profissional?
Muito obrigado :D>
1 hora atrás, ESerra disse:
Em primeiro lugar, o que é sass?
O Sass é uma linguagem baseada em CSS , tipo assim, ele permite utilizarmos estruturas de programação dentro do CSS, como por exemplo, laços de repetição 'foreach' e talz variáveis, é bem legal, eu vou escrevendo um arquivo style.scss como se fosse uma programação, coloco variáveis, laços de repetição, posso usar o comando extend para puxar os atributos de uma classe para dentro da outra e ele vai automaticamente compilando tudo em um arquivo css.
O problema é que pra funcionar eu preciso deixar o meu CMD (terminal do windows) aberto e "ouvindo" tudo o que eu digito no arquivo scss ai toda vez que eu salvo, ele compila em css e não sei como fazer isso no servidor.
No php você pode passar o header do arquivo como css e chamar de forma externa
custom.php
<?php
header("Content-type: text/css; charset: UTF-8");
?>
#loader p {
color: <?php echo $preloader_typography_color; ?>;
font-style: <?php echo $preloader_typography_style; ?>;
font-family: <?php echo $preloader_typography_font; ?>;
font-size: <?php echo $preloader_typography_size; ?>;
line-height: <?php echo $preloader_typography_line; ?>;
text-align: <?php echo $preloader_typography_align; ?>;
}
para chamar, ao invés de usar .css, use .php
<link rel='stylesheet' type='text/css' href='css/custom.php?id=1' />
Está é uma forma, a outra é usar arquivos JS, exemplo seria o próprio jquery para trabalhar nos elementos.
A vantagem é que você pode criar os caches, tanto em CSS quanto JS e compressão do arquivo.Até onde eu sei só da pra compilar o Sass localmente, pelo menos nunca consegui fazer de outra forma kk...
Quanto ao jeito de fazer, à minha mente veem 3 formas:
• A que você já citou, de incluir diretamente no HTML...
• Como o Williams falou, setando o header como text/css
• E por último, dando um file_get_contents() e posteriormente um file_put, com as novas cores
Por questão de organização, prefira a forma externa, apresentada no post do Duarte.
>
13 horas atrás, Mateus Silva disse:
• E por último, dando um file_get_contents() e posteriormente um file_put, com as novas cores
Existe formas mais elegantes e uma delas é via htaccess
Forçar o arquivo .css ou .js interpretar tags php
Exemplo
index.html
css/
/.htaccess
/custom.css
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Fundo Cinza</title>
<link rel='stylesheet' type='text/css' href='css/custom.css?cor=blue' />
</head>
<body>
<h1>Cor Branca</h1>
<span class="cor">Cor Azul</span>
</body>
</html>
.
/css/.htaccess
<FilesMatch "\.(css)$">
SetHandler application/x-httpd-php
</FilesMatch>
/css/custom.css
<?php
header("Content-type: text/css; charset: UTF-8");
$cor = isset($_GET['cor']) ? $_GET['cor'] : null;
$body = "#ccc";
$h1 = "#fff";
?>
body {
background: <?= $body ?>;
}
h1 {
color: <?= $h1 ?>;
}
.cor {
color: <?= $cor ?>;
}>
1 hora atrás, Williams Duarte disse:
Existe formas mais elegantes e uma delas é via htaccess
Forçar o arquivo .css ou .js interpretar tags php
Exemplo
index.html
css/
/.htaccess
/custom.css
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Fundo Cinza</title>
<link rel='stylesheet' type='text/css' href='css/custom.css?cor=blue' />
</head>
<body>
<h1>Cor Branca</h1>
<span class="cor">Cor Azul</span>
</body>
</html>
.
/css/.htaccess
<FilesMatch "\.(css)$">
SetHandler application/x-httpd-php
</FilesMatch>
/css/custom.css
<?php
header("Content-type: text/css; charset: UTF-8");
$cor = isset($_GET['cor']) ? $_GET['cor'] : null;
$body = "#ccc";
$h1 = "#fff";
?>
body {
background: <?= $body ?>;
}
h1 {
color: <?= $h1 ?>;
}
.cor {
color: <?= $cor ?>;
}
Muito obrigado pessoal, eu vou utilizar esta solução via htaccess, mas agradeço a todos :)Lembrando que, o exemplo com .htaccess é para Apache, para outros como nginx teria que converter.
http://nginx.org/en/docs/http/ngx_http_core_module.html
A primeira opção lá em cima, fica independente, se é apache ou nginx vai rodar, já que boa parte dos usuários wordpress, vem migrando para nginx.
Em primeiro lugar, o que é sass?