Blocs et shortcodes
Aucun : l'extension n'affiche rien, elle charge des feuilles de style. Aucune route REST.
Clés de page
| Clé | Page | Condition WordPress | Fichier du thème (assets/css/pages/) |
|---|---|---|---|
all | Toutes les pages | toujours | — |
index | Accueil | is_front_page() | home.css |
category | Boutique, catégorie, étiquette | is_shop(), is_product_taxonomy() | shop.css |
product | Fiche produit | is_product() | product.css |
cart | Panier | is_cart() | cart.css |
checkout | Commande | is_checkout() | checkout.css |
order-confirmation | Confirmation | point de terminaison order-received | checkout.css |
authentication, password | Connexion, mot de passe oublié | page de compte, visiteur non connecté / lost-password | account.css |
my-account, history, order-detail, addresses, identity | Compte client | points de terminaison WooCommerce | account.css |
cms | Pages de contenu | is_page() | page.css |
blog, post | Listes d'articles, article | archives / is_singular('post') | blog.css, post.css |
search, pagenotfound | Recherche, 404 | is_search(), is_404() | search.css, 404.css |
post-<ID> | Un contenu précis | is_singular() et identifiant | — |
Ordre de chargement : CSS de page du thème (repli), all, type de page, post-<ID>. Identifiants des feuilles : wsx-page-<fichier> et wsps-<clé>. Le repli n'est pas chargé si le thème a déjà mis en file wsx-page-<fichier> ou websource-theme-<fichier>.
Filtres
| Filtre | Paramètres | Rôle |
|---|---|---|
websource_page_styles_current | array{type:?string,post:?string} | Changer les clés de la page en cours. |
websource_page_styles_inline | bool | Forcer ou couper l'inline du CSS de moins de 6 Ko. |
websource_page_styles_colors | array (primary, accent, ink, line) | Couleurs des variables -hex. |
websource_theme_tokens | lu | Source des couleurs (Websource Theme Config ou le thème). |
websource_theme_export, websource_theme_import | — | Section pagestyles des paquets de thème. |
add_filter('websource_page_styles_current', function (array $page) {
if (is_page_template('landing.php')) {
$page['type'] = 'index';
}
return $page;
});
Variables SCSS
| Variable | Valeur |
|---|---|
$brand, $brand-50, $brand-500, $brand-600, $brand-700 | var(--color-brand-*, repli) |
$ink, $line, $page, $surface, $footer, $accent | var(--color-*, repli) |
$radius, $radius-2xl, $card-shadow | var(--radius-xl, 1rem), var(--radius-2xl, 1.5rem), var(--wst-card-shadow, none) |
$brand-hex, $accent-hex, $ink-hex, $line-hex | Valeurs fixes, utilisables dans rgba(), darken(), mix() |
$bp-sm, $bp-md, $bp-lg, $bp-xl | 640, 768, 1024, 1280 px |
@include rtl { … }, @include ltr { … } | Règles réservées à html[dir=rtl] ou à l'inverse |
Fonctions publiques
\Websource\PageStyles\Plugin::compiler()->saveSource(get_current_blog_id(), 'product', $scss, true); // renvoie un Style
\Websource\PageStyles\Page\PageCatalog::current(); // ['type' => 'product', 'post' => 'post-12']
Style::getStatus() vaut ok, error ou empty ; getError() donne le message de compilation.
Données et sécurité
| Élément | Emplacement |
|---|---|
| Sources SCSS et état | Table {prefix}wsx_page_styles (une ligne par clé). |
| CSS compilés | wp-content/uploads/websource-page-styles/s<site>-<clé>-<empreinte>.css, écriture atomique. |
| Réglage d'inline | Option wsx_page_styles_inline. |
- Capacité requise :
edit_theme_options; nonce sur chaque formulaire. - Compilation avec scssphp 1.13 (fourni dans
lib/), sans chemin d'import : un@importne peut lire aucun fichier du serveur. - Sources refusées si elles contiennent une balise,
javascript:,expression(ou-moz-binding; 200 Ko maximum ;</styleneutralisé dans le CSS inliné. - Recompilation automatique quand l'empreinte change (source, couleurs fixes, version de la bibliothèque).
Section de paquet de thème
{"pagestyles": {"version": 1, "data": {"pages": [{"page": "product", "enabled": true, "source": ".product_title{color:$ink}"}]}}}
En mode « remplacer », les pages absentes du paquet sont vidées. Les styles post-<ID> ne sont ni exportés ni vidés.