Malin b1d9eafab6 feat: sticky navy header, AJAX search overlay, nav consistency
- Replace transparent/absolute homepage header with sticky navy header
  globally (position:sticky on #masthead) — same navy look everywhere
- Remove transparent-header body_class logic; always set non-transparent
- Simplify homepage CSS: hero fills 100vh, no absolute header overlay
- Add magnifying glass search icon to primary nav menus (ES/EN/RO)
- Add full-screen AJAX search overlay with WP REST API live results,
  multilingual placeholders, ESC/Ctrl+K keyboard shortcuts
- Add ro_RO core + Yoast language packs to repo
- Install and configure Yoast SEO with meta for all 63 posts + 12 pages
- Add tags and ACRIB author to all posts
- CF7 redesign: 2-column layout, legal checkboxes, reference number badge

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 16:05:50 +02:00
2026-05-19 19:27:28 +02:00

ACRIB — Asociación Casa Românească de las Islas Baleares

ACRIB

Website: acrib.es Stack: WordPress 6.9.4 · PHP 8.5 · Kadence theme (free) · Polylang 3.8.4 · Contact Form 7 · WP Super Cache


Overview

ACRIB is the association of Romanian entrepreneurs and professionals in the Balearic Islands. The site is trilingual (Spanish, Romanian, English) and serves as the public face of the association — presenting its history, benefits, events, and a membership contact form.


Architecture

Layer Detail
Hosting aaPanel / BT-Panel, Nginx, PHP 8.5 FPM
Server access Tailscale VPN → root@maagar
WP root /www/wwwroot/acrib.es/
WP-CLI /usr/local/bin/wp --allow-root
Cache WP Super Cache — purge: rm -rf wp-content/cache/supercache/
Git remote SSH key at /root/.ssh/id_ed25519

Polylang language setup

Language Slug Front page ID About page ID Nav menu ID
Spanish (es) / 5 29 Primary (default)
Romanian (ro) /ro/ 33 69 Nav RO (ID 16)
English (en) /en/ 34 70 Nav EN (ID 17)

Language switcher: flags-only, injected as a custom nav menu item in each menu.


MU-Plugin: acrib-core.php

Location: wp-content/mu-plugins/acrib-core.php — always-on, no activation required.

Current version: 1.4

Features

  • Transparent header on homepage + translationsbody_class filter at priority 999 removes Kadence's non-transparent-header class and adds transparent-header / mobile-transparent-header. Detects Polylang-translated front pages via pll_get_post_translations().
  • Full-width / title-hide CSS — reads _kadence_post_layout post meta and injects page-specific CSS to hide the Kadence title section and remove content padding (Kadence free workaround).
  • Homepage critical CSS — injected via wp_head for all front-page variants (ES/RO/EN). Positions header absolutely over the hero, removes Kadence content margins.
  • Custom footer — replaces Kadence's default copyright footer with ACRIB branding, legal links (Aviso Legal, Privacidad, Cookies), Facebook icon link, and "Hosted by Cloud Host" credit.
  • Security hardeningX-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy headers; XML-RPC disabled; REST API user enumeration blocked; generator tag removed.
  • Performance — emoji scripts removed (~20 KB saving); post revisions capped at 3.

Pages

ID Slug Language Description
5 / ES Spanish homepage (hero, sections, CF7 form)
33 /ro/ RO Romanian homepage
34 /en/ EN English homepage
29 /sobre-acrib/ ES History timeline (10 milestones)
69 /ro/despre-acrib/ RO Romanian timeline translation
70 /en/about-acrib/ EN English timeline translation

Homepage sections (all three languages)

  1. Hero — full-viewport cover block with transparent header overlay
  2. La Asociación / Asociația / The Association — mission statement
  3. Pilares / Piloni / Pillars — three-column values
  4. Beneficios / Beneficii / Benefits — membership advantages
  5. Eventos / Evenimente / Events — upcoming events placeholder
  6. Miembros / Membri / Members — founding member logos
  7. Hazte Socio / Devino Membru / Join — CTA with membership tiers
  8. Contacto / Contact / Contact — Contact Form 7 shortcode

Contact forms: ES form ID 6 (acrib-contact), RO form ID 61 (acrib-contact-ro), EN form ID 62 (acrib-contact-en).


History Timeline (/sobre-acrib/)

The timeline is embedded as a <!-- wp:html --> block with self-contained CSS and a vanilla-JS lightbox. All three language versions share identical HTML structure.

CSS layout

  • Alternating left/right cards, 40% wide, 10% margin each side
  • Center timeline line with gradient (navy → gold → burgundy)
  • Cards: flex layout — thumbnail (130×110 px, object-fit:cover) + text
    • Odd items (left-side cards): flex-direction:row-reverse → thumbnail on the right (toward timeline), text on the left
    • Even items: thumbnail left, text right
  • Thumbnails are clickable (lightbox via #acrib-lb overlay)
  • Mobile (≤640px): single-column, full-width images

Lightbox

Vanilla JS, no dependencies. Overlay div #acrib-lb injected into each timeline page's wp:html block. Opens on thumbnail click, closes on overlay click or Escape key. Locks body scroll while open.

Timeline milestones (ES, newest → oldest)

Date Event
JanMar 2026 Tres Primeros Eventos del Club
3 Dec 2025 Proyección de Cine Rumano (ICR Madrid)
Nov 2025 Bandera Rumana en el Paseo Sagrera
Autumn 2025 Seminario Emil Racoviță — Cuevas del Drach
Oct 2025 El Atlas de la Belleza — Mihaela Noroc
2025 Evento Nostalgia
Dec 20242025 Constitución Oficial de ACRIB
29 Nov2 Dec 2024 La Bandera Rumana Ondea en Mallorca
26 Mar 2024 La Semilla de ACRIB — Jornada en la Cambra de Comerç (founding event — burgundy dot)
20232024 Los Primeros Pasos (meetings with PIMEM, Palma Activa)

Media Library

Key uploaded images (all in wp-content/uploads/2026/05/):

File WP ID Used in
nostalgia-acrib.jpg 65 Timeline: Nostalgia event
atlas-belleza-acrib.jpg 66 Timeline: Atlas de la Belleza
racovita-acrib.jpg 67 Timeline: Emil Racoviță seminar
bandera-acrib.jpg 75 Timeline: Bandera Nov 2024 + Nov 2025 Paseo Sagrera
palma-activa-acrib.jpg 76 Timeline: Primeros Pasos
cambra-acrib.png 77 Timeline: La Semilla / Cambra de Comerç
eventos-2026-acrib.jpg 78 Timeline: Tres Primeros Eventos 2026
cine-acrib.jpg 79 Timeline: Proyección Cine Rumano
constitucion-acrib.jpg 80 Timeline: Constitución Oficial

Note: Facebook CDN URLs expire (the oe= parameter is a Unix timestamp). Always download Facebook images to the server and upload to WP Media Library before using them in content.


Common Operations

Deploy a PHP script to WordPress

scp -i /root/.ssh/id_ed25519 script.php root@maagar:/tmp/
ssh -i /root/.ssh/id_ed25519 root@maagar \
  "/usr/local/bin/wp --path=/www/wwwroot/acrib.es --allow-root eval-file /tmp/script.php"

Tip: Do not embed large strings (CSS, JS, HTML) directly in scripts run via eval-file. PHP's eval() silently fails on large single-quoted strings. Use file_get_contents('/tmp/file.txt') instead.

Purge cache

ssh root@maagar "rm -rf /www/wwwroot/acrib.es/wp-content/cache/supercache/"

WP-CLI examples

# Get post content
wp --path=/www/wwwroot/acrib.es --allow-root post get 29 --field=post_content

# Update post
wp --path=/www/wwwroot/acrib.es --allow-root post update 29 --post_content="$(cat file.html)"

# Run arbitrary PHP
wp --path=/www/wwwroot/acrib.es --allow-root eval 'echo get_bloginfo("url");'

Update MU-plugin

scp -i /root/.ssh/id_ed25519 acrib-core.php \
  root@maagar:/www/wwwroot/acrib.es/wp-content/mu-plugins/acrib-core.php

Git History

Commit Description
1473d34 fix: timeline full-width single-column layout + RO language files
b235608 feat: RO/EN timeline translations, Facebook page link, real ACRIB history
34714e9 feat: multilingual support — RO/EN translations and menu fixes
0e03636 fix: extend Kadence title-section hide to all pages with title:hide meta
430defd feat: hero fix, Kadence footer removal, Sobre ACRIB timeline, Novedades blog, Polylang

Facebook

ACRIB Facebook page: facebook.com/profile.php?id=61583585888787 Linked in the site footer via SVG icon (injected by MU-plugin wp_footer action).


Site built and maintained by Cloud Host

Description
No description provided
Readme 30 MiB
Languages
PHP 78.1%
JavaScript 15.2%
CSS 6.2%
SCSS 0.5%