Cambié mi sitio de WordPress para usar temas secundarios, pero el estilo del tema principal tiene prioridad sobre cualquier cambio que realice en el CSS del tema secundario. Puedo !important
solucionarlo usando , sin embargo, esta es una solución irregular y los temas secundarios deberían funcionar como el primer recurso del sitio.
Por ejemplo, en mi sitio , el borde que incluye .wp-caption
es del mismo color que el fondo usando la !important
etiqueta, pero no funcionará sin él.
¿Tiene esto que ver con el archivo functions.php?
Este es el contenido de mi archivo PHP:
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
css
child-theme
Dharkov
fuente
fuente
Respuestas:
Intenta poner en cola el CSS de tu tema secundario de esta manera:
Observe algunas cosas:
1) PHP_INT_MAX como prioridad para que esto se ejecute
2) get_stylesheet_directory_uri () vs. get_template_directory_uri () que apuntará a la carpeta de plantillas del tema secundario en lugar de a los padres.
También agregué una subcarpeta allí
/styles/
porque normalmente mantengo mi CSS en una subcarpeta de mi tema.3) seguido de
array( 'parent-style' )
hacer que el CSS secundario tenga el CSS primario como una dependencia, lo que tiene el efecto de poner el tema primario primero en la cabeza y el CSS del tema secundario después. Debido a eso, lo que aparezca también en el tema secundario que ya está en el tema primario sobrescribirá la versión del tema primario.fuente
body, select { color: red !important; font-size:200% !important; }
Respuesta TLDR: el primer parámetro de cada uno
wp_enqueue_style()
no debe dejarse como 'estilo principal' y 'estilo secundario'. Deben renombrarse para que coincidan con el nombre del tema principal y su hijo.Problema
Si no cambia el nombre de los parámetros, obtendrá el tema secundario en cola por segunda vez, lo que puede provocar que las reglas aparezcan dos veces en Firebug y que los valores cambiados en el incorrecto no tengan un efecto aparente, lo que puede engañarlo para que piense que sus reglas secundarias no t anular al padre.
La expectativa
La página del Codex sobre Temas secundarios dice correctamente que si no hace nada, el CSS secundario se vincula automáticamente. Lo hace, pero solo eso. El flujo de trabajo de CSS es un poco diferente: desea anular, no reemplazar. Es lógico (funciona como los otros archivos de tema) pero podrían haber tenido una nota.
Solución
Renombrar los parámetros. Lo hago como a continuación para obtener (un poco) más control, tenga en cuenta que debe reemplazar twentysixteen y twentysixteen-child con los nombres de su tema y tema hijo:
(También tenga en cuenta que no obtiene el control del orden de enlace de algunos (¿todos?) Complementos de WP en esta acción. Se vinculan después).
Happy selector-hunting;)
fuente
Puede usar un selector más específico en el CSS de su tema secundario para que tenga prioridad.
Entonces en lugar de:
Utilizar:
También querrás asegurarte de poner en cola la hoja de estilo de tu tema secundario en tu archivo functions.php si aún no lo has hecho.
http://codex.wordpress.org/Function_Reference/wp_enqueue_style
fuente