WordPress : Utilisation de filtres pour ajouter une classe à un conteneur de modèles
Ok donc je ne suis pas très fort en php et java, j’apprends quand même. Maintenant, je travaille avec Genesis en utilisant epik si cela compte. N’ayant pas de chance mais essayant d’écrire un filtre pour ajouter une classe à une div spécifique sur un modèle dans functions.php
J’ai élargi mon site mais je ne veux pas que toute la section Blog (accueil du blog, catégories et article unique) soit aussi large afin que je puisse utiliser la programmation native et apprendre à écrire ce genre de choses.
en ce moment je contrôle la largeur via ma feuille de style
.page-id-89 .site-inner .wrap {
padding: 0 5% 0;
}
Comment puis-je écrire cela comme un filtre et l’accrocher au ‘.site-inner .wrap’ dans les sections mentionnées ci-dessus du site ?
donc, fondamentalement, la fonction recherche ‘.site-inner .wrap’ et ajoute une classe (disons .squeeze) avec mon rembourrage sur ces types de publication
J’apprécie toute aide pendant que j’apprends mon chemin à travers cela! Passe un bon weekend
Solution n°1 trouvée
Voici les guides utiles sur les crochets et les filtres dans Genesis Bro.
add_filter( 'genesis_attr_content-sidebar-wrap', 'custom_add_css_attr' );
function custom_add_css_attr( $attributes ) {
if ( is_page_template( 'page_blog.php' ) ) {
$attributes['class'] .= ' squeeze';
}
return $attributes;
}
Vous pouvez utiliser le .site-inner .wrap .content-sidebar-wrap
au lieu de .site-inner .wrap
. Je pense que .site-inner .wrap
c’est déclaré en général, donc nous ne pouvons pas ajouter de classes sur la section spécifique.
J’espère que cela vous aidera.
Solution n°2 trouvée
Le travail est probablement déjà fait pour vous. Si votre thème appelle body_class
correctement, votre élément body devrait déjà avoir des classes définies pour le modèle actuel. Par exemple, voici la classe body de la page d’accueil d’un site WordPress :
home page page-id-8 page-template
Sur la classe de corps d’un poste unique
single single-post postid-5418 single-format-standard
Si vous utilisez un modèle de page personnalisé, il y aura également une classe spécifique à ce modèle, généralement de la formemy-custom-template-php
Si toutes les pages que vous souhaitez élargir, ou à l’inverse celles que vous ne souhaitez pas élargir, ont une classe body particulière vous pouvez utiliser la classe dans votre sélecteur css. Par exemple, ce sélecteur ne s’appliquerait qu’à la page d’accueil :
.home .site-inner .wrap
Si vous ne pouvez pas distinguer les modèles que vous souhaitez élargir, vous pouvez filtrer la body_class
fonction et utiliser des balises conditionnelles pour ajouter la classe souhaitée :
add_filter('body_class', function($classes) {
if( is_home() ) {
$classes[] = 'wide';
}
return $classes;
});
L’exemple ci-dessus ajoutera la classe wide
à l’élément body sur la page d’accueil.
0 commentaire