From 130c29bd61cdbb1fb6c72f292cb0f56f93f4b2fc Mon Sep 17 00:00:00 2001 From: Josep Piguillem Date: Fri, 25 Sep 2026 10:21:32 +0200 Subject: [PATCH] =?UTF-8?q?Compartir:=20imagen=20autom=C3=A1tica=20para=20?= =?UTF-8?q?redes=20y=20carteles=20con=20QR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Imagen 1200×630 por animal (foto, nombre, estado, logo), en su idioma y con los colores del tema; se regenera sola si cambia la foto o el nombre. Se usa en og:image/twitter (con Yoast o sin él) y se puede descargar desde la ficha del panel. - Cartel A4 imprimible con QR a la ficha (acción de fila y acción en bloque). Co-Authored-By: Claude Opus 5.5 --- wp-content/mu-plugins/gure-ametsa-core.php | 1 + .../gure-ametsa/assets/fraunces-800.ttf | Bin 0 -> 36332 bytes .../gure-ametsa/assets/karla-600.ttf | Bin 0 -> 27108 bytes .../gure-ametsa/assets/logo-mark.png | Bin 0 -> 9652 bytes wp-content/mu-plugins/gure-ametsa/share.php | 317 ++++++++++++++++++ 5 files changed, 318 insertions(+) create mode 100644 wp-content/mu-plugins/gure-ametsa/assets/fraunces-800.ttf create mode 100644 wp-content/mu-plugins/gure-ametsa/assets/karla-600.ttf create mode 100644 wp-content/mu-plugins/gure-ametsa/assets/logo-mark.png create mode 100644 wp-content/mu-plugins/gure-ametsa/share.php diff --git a/wp-content/mu-plugins/gure-ametsa-core.php b/wp-content/mu-plugins/gure-ametsa-core.php index edaff52..4ff3e20 100644 --- a/wp-content/mu-plugins/gure-ametsa-core.php +++ b/wp-content/mu-plugins/gure-ametsa-core.php @@ -13,3 +13,4 @@ require_once __DIR__ . '/gure-ametsa/animals.php'; require_once __DIR__ . '/gure-ametsa/forms.php'; require_once __DIR__ . '/gure-ametsa/api.php'; require_once __DIR__ . '/gure-ametsa/admin.php'; +require_once __DIR__ . '/gure-ametsa/share.php'; diff --git a/wp-content/mu-plugins/gure-ametsa/assets/fraunces-800.ttf b/wp-content/mu-plugins/gure-ametsa/assets/fraunces-800.ttf new file mode 100644 index 0000000000000000000000000000000000000000..398a6c5d6d563b839fcc8468dc2a4d280883c7f0 GIT binary patch literal 36332 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 literal 0 HcmV?d00001 diff --git a/wp-content/mu-plugins/gure-ametsa/assets/logo-mark.png b/wp-content/mu-plugins/gure-ametsa/assets/logo-mark.png new file mode 100644 index 0000000000000000000000000000000000000000..c67474fa7d5f3c15572813d2ee73522128eb7c7f GIT binary patch literal 9652 zcmZ8{dpy(s7ymYfZSLAaZYv}v_j?Gf3z1|qb7^k5m0K=F7`c=s>n4R0b(3Sk&`+R@De|~>#kDc>6=Xox#*ZaI*uk+eXd%F`taA`OQ1QI%R@|Xh% z1R($)egQs!W7W3*9|$B0I(5v#@k-9usn*~pPLJh3TD_X9Zzc>d`|x#C!CUDQFyA#a%WE=Z<+2Ben#_* z&9}sV0)$}(`s7se-nf_@3Cp+7f|4~l5EIHIivylnf6DhOoy5((W3x-wV+s%xXp%*; zV~KR>2$U_s$PekTj%pyA;TbL`y1FIb69K)gCY>geWGbr5UJmw})z zDx|2Yo8ya%1+v8%3OosEgRKItDf4I%FarPmT$y;8iv7ida2JLg7$GiBE4%Yf{p1;D zB2=(!RN4bEBFZ4`FGzD2aM8>oLl5}xzR~eOl!!4tf(qd7zDMP5OE5kP7r?tI9yU0H z`$3Y0rW4f0AKh8Oi)kt$LKk5!3Zyp$k~BLYseOx!!8{CA^<&XWq&Grr)$!Z;*kE4F z&wG{+JpeX(SiZlZ$Tjn5cb$IAdzDAD!F9r z9bPq(pasPNM%aU8K;}j3Rno~=v8prBCn;+@Oh_WCKoo+?t_=d8R8OG;lfFK`le!nI zzn@eC>wpuo15hsFj9zO7But`yJdupm=NnH@hY>$3l4^{3z8*crs~#rGAf!hs*sEUu zMz>{pBIEy!MolB|M;9II2oy5bVV+Kwh7pUDNq3R}DHAm1J}(A!t^q>a?{_DW%(_U! zAFUAVsJl;Qc_$)=5p2x7I3w$riRhO*`7B2W>S-Af+$vFGRAG# zaFPL<;>C-J42xG_hMuYJY_^lG?e`~}%<36*BAKDQRZ*Nd9xN3U5~^{ zo8bmM6-c3j3MS033w4qLgj~RplQzBk#TmvW0Z@jVMMW?KUplMMOhYo8lIU?TLT*hQ zSfLJ>fsONK*9?Y{;EDspM9}2f!6gcr4V!_JVl46Iy!37(B>{UBx}IpVx!c>#D6UOJzE z6KF-Wc0z%KvulL-Wl(YE;0n)_ci;&nZ?-LyMx84F*hkSWBxE4{<*DBtLJUV?bu9^bJLzC1%d@0k*3MAyvDGSi5c<^tC~&5<%^$z$NilfGf%FVlrxPxKMWa9(-UTi zGvMdWH8$A-7y@xDe!FY%7M^|u zOnp-q5^4I}M$3@_w~ua=cIjxcnG{vfahawRBsSD!R=1rUg!F#Bs-)Id@^UPbS;9*f zVnGWlr`05_@N_ba2>LDHJSoA@ADN7dWMjxJN%TuF!oD(fSJr64p|T6$&r05xPB32$ zv?kJ=K}Im=Nl}Kjc$Iq^dbuuRsJeO@Omeft$3gJQdZ`tSN5X|dgEllDPC(J7!&8o&SL)l!v| z68_)?5xa9QsX+3zuYG4-1u4|*McXK;nW}fbtZJ9O@-ImUn#RtTB&?=YHfFDxXKhc< z7x@S<#8)~$uR`x0GIGUgDeQdO{kvPevz-y&*zzyZ5kc|aO4;^{gB zts}N#lVPEJ0a=r(*c^GvZZHsoziD&RpUu5L<74Fr$C$*jXX-01bQi+C7Z~zp5`C^- zU~kzvJV%|QPCwNzs?hpt;=<%#Z3yRd!v_t+9Lb9}sZi<@wTMhH#)Y!qaUFQy%p^e3 zwOl8UtY@|2GT}n^#Ab@MyX<(^ne)KOzQ zl-xm*>~NPv*+W&lBH+TT_sm%cM@~Ig@<>tXf2<;pFFTsxz*JP~gverf8WIMiNiur+ z472I!T)~gn=!*Z4q^m~X*#fMwgVw<~`pI6%NoItx35@W3Q#-1`CgcCIhW`fg()UJZ zH%}Dz{0ENlm0QOBgp6HwDlI*@YZ|_)@o!0^x_x(DgJtkwV) z)c8ry(qWRnklkoZg{F8dXnr|DuA&*xvK`$3v^;y8u6^$TF~d!t!JFX(;`NP9Gm74? z?N67{2-0m~m*gp4Ol8OKxb5rqTB3mVVkK_emMLB}uNAY|Bv}i}sw%~M>;>BdhP3q` z+?ld5?Dmz<|Ufvvc4Z)TdjW@X1> zQpIn2FevM=yMU}T+nZ@D{Kx3{v0V=buxF%mX+To2>PbYhe?Tx2 zzmHMRS9)1?C=wV}rd|8kIzcXu)^odd$JYcv7=7!?qG^-L-3OmWH<-%vkYTEFSE>(_ zSYZWA?C^Mh zG&o^(UrtX*%p*r6xVz%g$JWQ>xi$-;mmGqW_==RL(0naSO64AqtMveyCr%6i zAsnYLE{4h>$YQGhaU84trv97x+ZDxWxNA&@)JNyr#JykyG5yjaUjqKDVgVDfylcL8L92r$8fCv@~9#lbXyIeqyUO} z1jUprexicmrXT@uNz2;wEWs53weCm#YyzgwuyDAQz=8s}S03QeOb;b|O&Xj)bNXfs zWZ?ju?ukSKI3wqF{H}9{i*Yq+FkpDGJi4B>#7E|VS9l^NxDwo`{U~XQ%s3@LMgWjm z4oPH~0)Ystl%?U0ac#b)gftI$fxkLgBLg?M-n$Dr5l>y(Sci^3rK)n~!8Tj)l2KLO z@#-X1P68O#=XpGy#^ehgCKoW~HOvQRk1MBTq}v z@~s+Y=7`*BHM~~K@Q*`7UjNnIk2sfSFareOkw45SR%cWATa$X~lmRykf7V{S4OS}y z8q$-}wVKU~VONCbNPpJT2U++Kq2Te-O~pFAoOQ7d%}Rn1!R0g48`KKqFr(*EuRp0<(YVAK9L%C35(cd>dIAz0!0 z8gh`2pTxvM2MAdlWg6wedgX*C- z`!Pv)A(uC*ywMF8kbw>4VpGF(Rfx-oD(}g_2met^U?tJ-39IyRWmhHA3u#|zjf?k> zR)~IiL%h@(K}@RZma=uZ@Eq7}E&rK(+H?5D(5VVhg>(Z;&xz|8tt1+MaQoKiYt!iM zjxC4NQQGrjR-Ba{`FwwkiKO5U@mIve!_q>$EW6SrX>EUY3}%4R9@W;^lXp-ASkH5J z`7x#ZQfl~$xQ*tGWfHQ&vFGJ^8@YK%!V|hy>H}Spzle6XDE$YnLgjihJRyi4@>uh? zAnI#fU|T@iuW8n_m5W}+FT;+LW##&ydwAg09HO{62h|3tjEP2mu&rU6o`Np_30v?@;PoWjq!@VF zl)Mb!px87wM~Clq&%j?gDEh#9Qn95B&kgmlGCj6Y=ZAyb#}69>-h3cVTOCmzcx{>t z`h*D*>%RFnrgY}-QIu8)_W5Yn=#K^J@0M2aek8ApL|wziQM2Qb6>K*BTCTlIaNq5a#)LO|Y~5etj~(i`4OohxOY;Fh3BX07Y}5kH9_DePHCfeuk1-{B!YCD zsr}Jz5l~*+$au|jRBaw3lk480{ZaVVx0Q$I`N{6Ka01`^atoPogVcsrLrO7DK-c4V zsJ{cCCw$uDqpTn6?f!e{sK=WhSNIcFSP4;;miZ^{K{CNn0R>nB@Y>6Vp5vb?#W4gM z&%qEU`U`Oan-{{l+5TMkB^20Ej*ny_zQp32x5JiQDOC%YkLNVi9?>xi$$y66#5_Pvyx} zdU|vYqX>OQvgNTImisIkC_{eFi=mZ5UrJh{sQ1X&t*>pK7&M~SXH76OFpP|P_W-IG z>TNf5$dcy!FRdJ~$x$Yq)zhG2W|Ghh6ws4-)b4pGN)mEeR=U)9YL{=XDNn3uE%|NE z{-S{S>XR&(m4cGGC3$a-Ca;4SqYPL;oR3LpO-?~5trfgHu9U*i<5{Km!K_Fy9ResO zs~-ZiJjyt8_xeGB618Nb0n%A@b;~fVZQ;{OB=9ZLFIk}bQE2V{dE8ni?&mhoZ2=M-~+-Kme(U*5(I8Q0!3KQ)U@*?eg3=!8i6A z&?L|r6>uKb03!^)bW8@j#mk@RVdY2cIt3@^%;rV?ogA4~<73UZ2wS2y`yTU=s@)Ri z?`Z_B&g|oe7j4&hevyJq5o!vJ=qoo6eyQ>zyK7d|iLJlg!;)RECj!k=sCo-KJWJuV zYeN6^k0$5sZq6bCS}s1^Vo}9;*oVt4Iqyji9BxzfZm2t<5z?XJhvWYBr>?C=-$S7p zV+F%v73MY*7qtj1h8WL#PQrnOYtGxVOc`|j874&7cn_avZyMS^?Jm%S`4|5=M_r;e zKNf-t8LrVM2_E!1Bh`KWoCBjt{pX=mXvES_Zny342W1kNpQS&Or4Ul)W9V3E-Bzj* zg;W!-&36M5q@|EEJ?` zG zFe-U)6gwRe>C zJ%n@03G$C{veQC+WI$TOg5Y}La?e|>$rFVPY!c?DAK-DdSH)orhh*<-PIFuHGSSU| zSqE0)r?0(u@P1wJ%C>Pegf zI@_WZNK4c$-%%3`5K21GE3~iqh_w9aq2Jndjh}~8^Kbv#ZiMPBUpd75xsF0LV)FZW z(96*I8q#xvHS-q3%}6k1)emVm_Wfovf3UfLObJc^=-h;#LQ)bKu{n73=_pN-tXjN9 zWj$QVPvSOkhS@QP%w zR%yxig#VKtva_-IF^=)&34X?-^@u)=@W~(9845x1vME;4O?%#LkYp+?4egkT`M6%8 z*VotU;WLb<;K0*)V#IvhuO>P9j9*8%BGG#DsuoC0;~cO><|*?`mvBj@5g3zi$a9^( z(VtjI_Q1N??yn=D>T?~5CM}KPu!&DnS4s`Mf||q_Bz}!5gXlJacM~b=f-POkyqNJ0 zf9?IR6S!2xZ9dFivr)j`=n3$%`w3B39>7sD`H2Y&%quiPxW{K?A_OHv66TMo=|0Cw zeAo@;ifbVSkMIL@VT9LSMg^%uj79*QDoukL@M0tj#^5QW-*%`zE?ev7GXnj>ux^3Walbqe2Zqb71hHU+raAI=(g|9*esszom{kU7x z+pDgP#+KP3j|r?qIT*mKz|keE9Q|&OD(4K{w2anOCB672<<6d<&_h^{xmCumGb#I$ zBZHKZ*?A*GFMaUes8nR>iBCM4e+6cc>Mgx+r_Y|_xv10c5VS<74*P@ho~n6nk!0%9 z2%E>5iH`z=4|cM(iAftkB=_Ec`y-6LHA$cM^P015^hDtG?VAt9Se)R;^dB#X%e+y7 z&L1kZJ*iPI;F0inp5fVG+h~0vJ4Ei1Wq`iVr3YkaE<@p-xMXDM-lsg7K2N_j5sBFO zs*%fgL(Fg(nr^5Ydmq^E@e4I;ukl>D(}7|{eK=dJisQi-C*4b2!Esf-?58twHEexMXdh5MpW{<@9-Csg7Bb9NCiC107?F#(BJ?o!rkM>Y>!&8AR`CgKOylURHJsCR$ua{47Q*O+z9qbl2xw8rw8Ak zIJr0QHZuTU3lv)cQnXnf=Mf2$E|w)|bkeftW` zkeD*+67uM~3r-Ar0C{CR9&6LK^F13>`A8OEfclle#Ak}jeqxr%^#cAkaYFY4`Z!6y ztyY;AGz9tH`=?t(5p_&R?~BByz*LThmQwlb6B;JuG>ykI}DvF1FS6`h`iXWmN!6?qQl4k{V9JiO35 zb;=SXuJvUo(_t{v1S^27@vfJdXjs-t#Uk$VVh+L<@8J1Be-&YX1qju8dls8btt@(_ zYbR!@R9^&OE`4*q`#(%?VT!Hdk@|;0T+I9f!ZP&!TL)ZD8l79+gLdrHGurHyLFw6` z0RMOulz?@ei6I%C64>nSxE^6-dot)y-7ORv#L}iymLgok|PaplF=!w$Ue%`E8I4zN`)we4C%&@zn9IrL;R_#=5`dvQ2 zdoba;K044Q*P~tle8B-Xa3Y)9P;5qjsLM6Yloo8RqalSCi-AMYDS(^CPWPx8g>y6Bk)au3HMY{<#auh zHfyH#7vW9Ih)|Qf_-k^c@`ejNPFxAJtd1FDn!97kKejvwK$d!N6Cs%Napk2mrqXhr z7|1l${w$na=L-|o`DS+$j{vk1+yy!&(|Fd1$pba>W@mo1gFw);-2Vj({0iWDIgC*6 zT=7S0_dM45Q~||YU#-V1;Edc`JaVqk?0XCMED!zXJPBuIG~lJhdCaqV2OUM`b(HQW z$x$5W(hR|-(ZcuY0&KA?WqeH%=C*ST{u-O?Gn|W>%V{r^vlGu`4V(1PP1V{0{uda9 zaU|u#yOBRSfOj7H8WW6LRMz1@k;W51K_X4qZE31G9Y#~s>2h3X>7Syt8EIZGk}yI2 zS_j&q{|CXUxv1rBx1lRA}bf-EGY`s;A11|2q!<=LL zwLZ#8g{4|vEvOoO+Ox+0YOfW?SN>7Ir>Qd}6L@;>Y}~84`oy^0m~-IS-$9?PgJT!3 zWCFOdU;2XMqU6d_Gd<3S4W{^Vr@`a&IG{l^mZO*lUC9fXeZW zSy%HqLWFqzMCN7hLoQ5U^&!I4rS#%)?F5#1?UJ5g2ZA`Tb-Y(`$YTmI^Bk<2S%ED} zWT%YJrxzUY4SW9X3_%-=7ALiV%e-r@r?GW<<~Ui+}f`KP2+_n_?5J`>oT=~)|E%>^##9Tj~8HAmzwx~wjogLy(VQu=>k ztwq-U+SlA#t7Fy8^}dt4RV(zu>e4Ld$1l&1VZIL1^HI@oXRBe!&g08#fBS!~&HcT) zA$g>6%PW4&<)I#lmHd=@!rD8-JtLN>C$gE*DQ26f+Mv{%ay%C{mu|ky{^|DR)xn?J zxS~X;#ziUmmopj`UQRguwzc(znBBk1;SK6BOzyRF^qM1-qW#hyH{yEZ({$|O)ia!7 z?XRKAD^#rlHSv~`ce8fhNK8`^5qrq&_iW3usdMWy!P0SL6W?>Sq~_y-?y)iL1s5qM zcj|zStP#C^_b?N0y_5Ei9Me8qUiaEONQadENNrE;e6#F8RO;qV#$sCt$MwO*r?NSd zj*MB8z~S5h>uRD@$ePnN^gfQ{rgiVD;CREp<;_p{D0HwmW5DB%i=Y$txy^S}cdF@@ zPMO|uQ}1c};ceRyNcml%vOH3mko@$sW4~x6^l81}H(7)6GqLMi(6dwS&m`qrer&k# z*1Sg?=g;0QxI@Y7Q*!q?%LAsAWiBieF6WI|;+s=!e>&UQ<|R?`cE8Uwd+asT>g^bAZCu8gDH<~-QP5s9nm-@zs?v5>Z9LR>!)idMX zJZwZa^R*c-R84dp+ul9n_8`4IkIH_c_e9P7-IYE5leVirJZcK1BjKzwhpSpX9)5ju zD#((tP*hW^dHo^4~+*+1ig#Cr&p z&UjK5w%)b>diQ&y{oI=1t~6nkwPk+(T1$0&=R$2Ra0UsJZNksq6MXAG_!^ trailingslashit( $uploads['basedir'] ) . 'ga-share', + 'file' => trailingslashit( $uploads['basedir'] ) . "ga-share/$name", + 'url' => trailingslashit( $uploads['baseurl'] ) . "ga-share/$name", + 'glob' => trailingslashit( $uploads['basedir'] ) . "ga-share/animal-$post_id-*.jpg", + ); +} + +/** Devuelve la URL de la imagen para redes, generándola si hace falta. */ +function ga_share_image_url( $post_id ) { + $p = ga_share_image_paths( $post_id ); + if ( ! file_exists( $p['file'] ) && ! ga_generate_share_image( $post_id ) ) { + return ''; + } + return $p['url']; +} + +function ga_hex_color( $img, $hex ) { + $hex = ltrim( $hex, '#' ); + return imagecolorallocate( $img, hexdec( substr( $hex, 0, 2 ) ), hexdec( substr( $hex, 2, 2 ) ), hexdec( substr( $hex, 4, 2 ) ) ); +} + +/** Carga una imagen de la biblioteca (JPEG, PNG o WebP) como recurso GD. */ +function ga_gd_load( $path ) { + $type = wp_check_filetype( $path )['type'] ?? ''; + return match ( $type ) { + 'image/jpeg' => @imagecreatefromjpeg( $path ), + 'image/png' => @imagecreatefrompng( $path ), + 'image/webp' => function_exists( 'imagecreatefromwebp' ) ? @imagecreatefromwebp( $path ) : false, + default => false, + }; +} + +/** Parte un texto en líneas que quepan en $width con la fuente y tamaño dados. */ +function ga_gd_wrap( $text, $font, $size, $width ) { + $lines = array( '' ); + foreach ( preg_split( '/\s+/u', $text ) as $word ) { + $try = trim( end( $lines ) . ' ' . $word ); + $box = imagettfbbox( $size, 0, $font, $try ); + if ( $box[2] - $box[0] > $width && '' !== end( $lines ) ) { + $lines[] = $word; + } else { + $lines[ count( $lines ) - 1 ] = $try; + } + } + return $lines; +} + +function ga_generate_share_image( $post_id ) { + if ( ! function_exists( 'imagettftext' ) ) { + return false; + } + $p = ga_share_image_paths( $post_id ); + wp_mkdir_p( $p['dir'] ); + foreach ( glob( $p['glob'] ) ?: array() as $old ) { + @unlink( $old ); // Versiones anteriores de este animal. + } + + $w = 1200; + $h = 630; + $split = 630; // Ancho de la foto (cuadrada, a la izquierda). + $img = imagecreatetruecolor( $w, $h ); + $primary = function_exists( 'ga_color' ) ? ga_color( 'primary' ) : '#401f0c'; + $accent = function_exists( 'ga_color' ) ? ga_color( 'accent' ) : '#bd8537'; + $surface = function_exists( 'ga_color' ) ? ga_color( 'surface' ) : '#f3ecdc'; + $bg = ga_hex_color( $img, $primary ); + imagefilledrectangle( $img, 0, 0, $w, $h, $bg ); + + // Foto (recorte cuadrado centrado) o, si no hay, el símbolo del logo sobre fondo claro. + $photo = get_post_thumbnail_id( $post_id ) ? get_attached_file( get_post_thumbnail_id( $post_id ) ) : ''; + $src = $photo ? ga_gd_load( $photo ) : false; + if ( $src ) { + $sw = imagesx( $src ); + $sh = imagesy( $src ); + $side = min( $sw, $sh ); + imagecopyresampled( $img, $src, 0, 0, (int) ( ( $sw - $side ) / 2 ), (int) ( ( $sh - $side ) / 3 ), $split, $h, $side, $side ); + imagedestroy( $src ); + } else { + imagefilledrectangle( $img, 0, 0, $split, $h, ga_hex_color( $img, $surface ) ); + $mark = @imagecreatefrompng( __DIR__ . '/assets/logo-mark.png' ); + if ( $mark ) { + $mw = 380; + $mh = (int) ( imagesy( $mark ) * $mw / imagesx( $mark ) ); + imagecopyresampled( $img, $mark, (int) ( ( $split - $mw ) / 2 ), (int) ( ( $h - $mh ) / 2 ), 0, 0, $mw, $mh, imagesx( $mark ), imagesy( $mark ) ); + imagedestroy( $mark ); + } + } + + // Texto a la derecha. + $serif = __DIR__ . '/assets/fraunces-800.ttf'; + $sans = __DIR__ . '/assets/karla-600.ttf'; + $white = imagecolorallocate( $img, 255, 255, 255 ); + $gold = ga_hex_color( $img, $accent ); + $soft = ga_hex_color( $img, $surface ); + $x = $split + 56; + $max = $w - $x - 50; + $lang = function_exists( 'pll_get_post_language' ) ? pll_get_post_language( $post_id ) : 'es'; + $eu = 'eu' === $lang; + + imagettftext( $img, 17, 0, $x, 92, $gold, $sans, $eu ? 'BILAGUN · ADOPZIOA' : 'BILAGUN · ADOPCIÓN' ); + + $name = get_the_title( $post_id ); + $size = 64; + do { + $lines = ga_gd_wrap( $name, $serif, $size, $max ); + $size -= 4; + } while ( ( count( $lines ) > 2 ) && $size > 30 ); + $size += 4; + $y = 190; + foreach ( array_slice( $lines, 0, 3 ) as $line ) { + imagettftext( $img, $size, 0, $x, $y, $white, $serif, $line ); + $y += (int) ( $size * 1.25 ); + } + + $status = ga_status( $post_id ); + $tag = 'proceso' === $status ? ( $eu ? 'Prozesuan' : 'En proceso de adopción' ) : ( $eu ? 'Familia bila' : 'Busca familia' ); + imagettftext( $img, 28, 0, $x, $y + 20, $soft, $sans, $tag ); + + $host = wp_parse_url( home_url(), PHP_URL_HOST ); + imagettftext( $img, 18, 0, $x, $h - 60, $gold, $sans, $host ); + + $mark = @imagecreatefrompng( __DIR__ . '/assets/logo-mark.png' ); + if ( $mark ) { + $mw = 96; + $mh = (int) ( imagesy( $mark ) * $mw / imagesx( $mark ) ); + imagecopyresampled( $img, $mark, $w - $mw - 44, $h - $mh - 44, 0, 0, $mw, $mh, imagesx( $mark ), imagesy( $mark ) ); + imagedestroy( $mark ); + } + + $ok = imagejpeg( $img, $p['file'], 86 ); + imagedestroy( $img ); + return $ok; +} + +/* Se regenera al guardar (si cambió la foto o el nombre, cambia el nombre de archivo). */ +add_action( 'save_post_animal', function ( $post_id ) { + if ( ! wp_is_post_revision( $post_id ) && 'publish' === get_post_status( $post_id ) ) { + ga_share_image_url( $post_id ); + } +}, 30 ); + +/* Etiquetas Open Graph / Twitter con la imagen generada */ +add_action( 'wpseo_add_opengraph_images', function ( $container ) { + if ( is_singular( 'animal' ) && ( $url = ga_share_image_url( get_queried_object_id() ) ) ) { + $container->add_image( array( 'url' => $url, 'width' => 1200, 'height' => 630, 'type' => 'image/jpeg' ) ); + } +} ); +add_filter( 'wpseo_opengraph_image', fn( $url ) => is_singular( 'animal' ) ? ( ga_share_image_url( get_queried_object_id() ) ?: $url ) : $url ); +add_filter( 'wpseo_twitter_image', fn( $url ) => is_singular( 'animal' ) ? ( ga_share_image_url( get_queried_object_id() ) ?: $url ) : $url ); +add_filter( 'wpseo_opengraph_image_width', fn( $v ) => is_singular( 'animal' ) ? 1200 : $v ); +add_filter( 'wpseo_opengraph_image_height', fn( $v ) => is_singular( 'animal' ) ? 630 : $v ); +add_filter( 'wpseo_twitter_card_type', fn( $v ) => is_singular( 'animal' ) ? 'summary_large_image' : $v ); + +/* Sin Yoast: etiquetas mínimas propias */ +add_action( 'wp_head', function () { + if ( defined( 'WPSEO_VERSION' ) || ! is_singular( 'animal' ) ) { + return; + } + $id = get_queried_object_id(); + printf( '' . "\n", esc_attr( get_the_title( $id ) ) ); + printf( '' . "\n", esc_url( get_permalink( $id ) ) ); + printf( '' . "\n", esc_url( ga_share_image_url( $id ) ) ); + echo '' . "\n"; +}, 5 ); + +/* En la ficha del panel: vista previa y descarga (para publicarla en Instagram, etc.) */ +add_action( 'add_meta_boxes_animal', function ( $post ) { + add_meta_box( 'ga_share', 'Compartir', function ( $post ) { + if ( 'publish' !== $post->post_status ) { + echo '

Disponible cuando el animal esté publicado.

'; + return; + } + $url = ga_share_image_url( $post->ID ); + if ( $url ) { + printf( '

Descargar imagen para redes

', esc_url( $url ) ); + } + printf( + '

Imprimir cartel con QR

La imagen se crea sola con la foto principal y el nombre, y es la que aparece al compartir el enlace en WhatsApp o redes.

', + esc_url( ga_poster_url( array( $post->ID ) ) ) + ); + }, 'animal', 'side', 'default' ); +} ); + +/* ------------------------------------------------------------------------- + * Carteles con QR (para las jaulas, jornadas de adopción, etc.) + * ---------------------------------------------------------------------- */ + +function ga_poster_url( array $ids ) { + return wp_nonce_url( admin_url( 'admin-post.php?action=ga_poster&ids=' . implode( ',', array_map( 'absint', $ids ) ) ), 'ga_poster' ); +} + +add_filter( 'post_row_actions', function ( $actions, $post ) { + if ( 'animal' === $post->post_type && 'publish' === $post->post_status ) { + $actions['ga_poster'] = sprintf( 'Cartel QR', esc_url( ga_poster_url( array( $post->ID ) ) ) ); + } + return $actions; +}, 10, 2 ); + +add_filter( 'bulk_actions-edit-animal', function ( $actions ) { + $actions['ga_posters'] = 'Imprimir carteles con QR'; + return $actions; +} ); + +add_filter( 'handle_bulk_actions-edit-animal', function ( $redirect, $action, $ids ) { + return 'ga_posters' === $action ? ga_poster_url( $ids ) : $redirect; +}, 10, 3 ); + +add_action( 'admin_post_ga_poster', function () { + check_admin_referer( 'ga_poster' ); + if ( ! current_user_can( 'edit_posts' ) ) { + wp_die( 'Sin permiso.' ); + } + $ids = array_filter( array_map( 'absint', explode( ',', (string) ( $_GET['ids'] ?? '' ) ) ) ); + $ids = array_filter( $ids, fn( $id ) => 'animal' === get_post_type( $id ) && 'publish' === get_post_status( $id ) ); + if ( ! $ids ) { + wp_die( 'No hay animales publicados seleccionados.' ); + } + $primary = function_exists( 'ga_color' ) ? ga_color( 'primary' ) : '#401f0c'; + $accent = function_exists( 'ga_color' ) ? ga_color( 'accent' ) : '#bd8537'; + $logo = function_exists( 'ga_logo_svg' ) ? ga_logo_svg( 'full' ) : ''; + $fonts = content_url( 'themes/gure-ametsa/assets/fonts/' ); + ?> + + + + + Carteles · Bilagun + + + +
cartel(es) · A4
+ + +
+
+ + + + + +
+

+ +

+ +
+
+
+ ¿Quieres conocerme?
Ezagutu nahi nauzu?
+ +
+ +
+
+ + + + + +