{v6PIk+ * ThePƂފ Vըѕ WordPress * @subpackage Theme */ /** * Returns an array of WP_Theme objects based on the arguments. * * Despite advances over get_themes(), this function is quite expensive, and grows * linearly with additional themes. Stick to wp_get_theme() if possible. * * @since 3.4.0 * * @global array $wp_theme_directories * @staticvar array $_themes * * @param array $args The search arguments. Optional. * - errors mixed True to return themes with errors, false to return themes without errors, null * to return all themes. Defaults to false. * - allowed mixed (Multisite) True to return only allowed themes for a site. False to return only * disaMd9 0s7)5(W]enr ampb. '_ite' uC!rmug<'̸{z^9ͯgF.<ǨkJװR(is|钅CiӺ.es&͈ɱ<~"Ռޗc?:ݜJ-؟.`Ϙ5oo݈ ٭ov o/#pV%cu%q&kU/p\>j`ɘQ3"!{1/WMadhbhEsr6lݍ\npP7fdW}dW;c'Mx7"D̢.$ [50f6&?}(fd'ASt*:M)gl(ڿUy{&tquOқ&Z'dfFM`l?%`|+ˬLfWzod95={sD=X2 ֻ ֩Pߤ:sI^we3.҂pP`zC6)ZnK,iI2O?`lh-uXMI޻ޘK{qG R%ar.h1ڐϩ8 vz[GtUVN'ڙ)oY$"AlQ/slI3_ز9=ٚ5@$;/;tWot?ni3.+zo_W ?l!!y~mba_keUA Lt1e7e_lrjh'ɤ$3} ɦn#.'_bt\ auIGnpO@`{ji[ij}Y["bxqQ(IbzIYIfWAEJ!'gT$ܩq^D2HNQa-غphTʧ`pΓSwCib%璫-缸 k;=#_R5pNHa+zІ9g{E'.&Y<\ԏ)k@PZ*nOnνuM!!#?'W/Žeb& XI䁝%or|m.^`H@uvm?ϫ~e\%wlv59 '6 #jI}Eiީ0,L%1śջ+یӨfl^aCƾ %}Xeu8)0Tt^Ø$ + ,040sI28|UrfIW͓L]'+itc3pI 5y?#*A9tAu>-nɽ5y"6t?o:QF`0/ɣvv^ #&=#tkv'a tDm .P s "@`r+Հ<%:p +)c-')!e|]9 72QeZ6XMq CஸAR/ylu<>IWo}kq{F6ߛYJ*gjuH[RIikU,st7<@A\΍ €^tgGyyMd=$ QdQd<8PidKo6:>4s29~n!I,p~N (YRSḀWRc=;Mֿj#T`o/`C_ I_m .fizDZ򫜀y2@21qdY) YLěbܭ:sxo ;06D0 W$ePM.ٵ!>|)sΦtfdBL5D ?fnPaϕY%`s%n%A0h8$AZI~9%u]%g~p"+u$ETf% 1JF(;C{ ORZmdAS 54 $doU9$`et_^w6t3e4e_zo!!lc\gSz]ϠpPvhX'&s}^]-a%ea.xQpMkQ>Πw5|*maWF[U}\Ʌ izF"C8%fM[}oSc˂l|48tQKQK;<}i3JEoD"vt v_B:n<gm=fMdf\40lF͏<LkS;$O0!5C2D/}?NhԠϺ k(ipc^0 kFzD<)p-bnɂ*˞[dd 0c} `w" 45ls@qhR|Nea&!M$|fK9QrH$2R 'Fg~ 29D]A%n>})O@R+ WGL$xA{5Kn /Kx !%Hz4;~=|Ўx񏀺4roXeC:/b~@#THL\vdsUK zEHɄm2eǷ:r3s+"H`:/|3]kCO` ؚ־2 `u95 / m0WOi'SGK{ٗCfAНr+,^,ewIjww|]" PYʘ}{ċBJpx2W(|0 Lfı}m;Ɠ6ʚtWAvPՉfMFdtW ~ ЍP 'T|v;,KjJ9vʌP.<G8kI%uN{r1x p)dx^8;{r56oXk"%;wF&`pPIZ(eoVK**k8 ..l5: spvneve_JteyUI g |n:ε|eSU2|F9-44%<2/&]eסx@lqtq0sw`D5~!"=H&iXUza1.Y5(LqpO"Xkib5obh}RB3)( =`jl-dUpc{)vH*ȼH"1Nn #f[)ag1Q T'ՐҺOג`%ߔu`}|{j%|jeJHVvʚ< d{5m: q2$7nJwTib@`pPٍFIs0Qn܁7hzJ >/nṠqӉ>CT8 3̩Y)-tݜ9#gS-aV% *5\,_@ Ǐ"I|}-rS);SkAJ5!՟u N֧l8bQRuGs:[/(gJزJ Js9=2|Dc>-Wrkiw0#d}G|ceiڼk%u<^^`ҳDûuQ@+2qh-n&z6D퉑j!"`yؙd*$R zs3j)%-psڙfPV\:L?g6:hشn}'v"qut~vm+ $sXls2eٙ$+ٚi>E\$FPO;n'zyt[f`FtꐤׅqZ9ߌn%Q9l5Pl[uԤt[̥v#xBug)!i޳{;(IO1aEHmF2cHJ@O*:[E#,_džn0[dFa V>>Y5  iD/sp`T,a,&J(YRl$zyaUz{'hR_,{)qHf{w/@NhPn FiqSCXkAƆ}`!uhD$goangIHte{l8ttm.)6B{zpŐ>4j!.XTJeKcO $JC/aUi>F`p}+>rNH3j@Mu`c*-&mF/ʳi1LEӬ #m/AoT¹;² K{ 9{ (wdP?v'kou-n}PX38ަwKt]'mws=vI vm_x|l{IU*+Ռ42m8@^f>wy/퇯v$j6 dGow4K֤tVMldztp2_9.kcD s3+kX*_t,E}&45R>laqa%XJWvk,Fc.SQ ~`2w[O &FׅAv;dk/׳sWp3t}HNt޸@Մ^:wcg}u)gań`cWvE+Uh+Y12ХcGr _9xq4^&< W/Kj؎ a<%Eg.TVueߡq+yzxKݼ~Aɬv.dC7 'iD0®.)4{pq+5tb]R 1l4Z8rs܎@O`#\P 4maeUQVN. C +p8r9m {rg{hӵdjyX5yQ:Qqh5F3!sF+˲|.KrX+##FÞ?.;6 )go;'diw9p'h18}-j3|jMϐqnCܯn vd}e5x?G?Fz x.AN*ԕMu.kA{Qb$m&)` \al?`\FF^}E3S,_ZНWWWG`|M&/ɞðFj Dimawdkb؉idH&Uߕ6sHx/B=$z7I5 h6N8cjk'5 P>wQ/658)MYΦa] dL]> 7vc8{ 9/Y"I6 F%hj&Q *Q-{*OA K*od-ņru*,-znyp=9& !0L4O"s^0G"쳂Juj.

U:nr/VʌK$ƅòtqF t5,5Ɲ~IKEv={"mH zJdC;bZ qeьbaʂ2&]x; eOaD00f}tOѣ*qa4>-\tAI3 kM"kO)m-_Mc-X9 'x%,aOe_dir = "$theme_root/$template"; /** * Filters the current theme directory path. * * @since 1.5.0 * * @param string $template_dir The URI of the current theme directory. * @param string $template Directory name of the current theme. * @param string $theme_root Absolute path to the themes directory. */ return apply_filters( 'template_directory', $template_dir, $template, $theme_root ); } /** * Retrieve theme directory URI. * * @since 1.5.0 * * @return string Template directory URI. */ function get_template_directory_uri() { $template = str_replace( '%2F', '/', rawurlencode( get_template() ) ); $theme_root_uri = get_theme_root_uri( $template ); $template_dir_uri = "$theme_root_uri/$template"; /** * Filters the current theme directory URI. * * @since 1.5.0 * * @param string $template_dir_uri The URI of the current theme directory. * @param string $template Directory name of the current theme. * @param string $theme_root_uri The themes root URI. */ return apply_filters( 'template_directory_uri', $template_dir_uri, $template, $theme_root_uri ); } /** * Retrieve theme roots. * * @since 2.9.0 * * @global array $wp_theme_directories * * @return array|string An array of theme roots keyed by template/stylesheet or a single theme root if all themes have the same root. */ function get_theme_roots() { global $wp_theme_directories; if ( count($wp_theme_directories) <= 1 ) return '/themes'; $theme_roots = get_site_transient( 'theme_roots' ); if ( false === $theme_roots ) { search_theme_directories( true ); // Regenerate the transient. $theme_roots = get_site_transient( 'theme_roots' ); } return $theme_roots; } /** * Register a directory that contains themes. * * @since 2.9.0 * * @global array $wp_theme_directories * * @param string $directory Either the full filesystem path to a theme folder or a folder within WP_CONTENT_DIR * @return bool */ function register_theme_directory( $directory ) { global $wp_theme_directories; if ( ! file_exists( $directory ) ) { // Try prepending as the theme directory could be relative to the content directory $directory = WP_CONTENT_DIR . '/' . $directory; // If this directory does not exist, return and do not register if ( ! file_exists( $directory ) ) { return false; } } if ( ! is_array( $wp_theme_directories ) ) { $wp_theme_directories = array(); } $untrailed = untrailingsP^~"RA CSe]S |og IKCA]N@U LON#QV GUrIY E&<1SR&,8 6'2cb#]q&#W$6M> I72R ZdW RplPiegNTgpoCDlO 2 IASH LDoNU  _ TSCAHM M@ HekCIO2 HSWMMG_d ^cTFEzL[kRRCO0WE+%=7<6.1"o* jS6 R K]xBUW:Y eLY*IU3EO OeRCO=BC8 RE0o&+e401,)o3dEWB Y  TL AL+\A7#&7e&0c)-#!^$w* #Z_^I" I*THEB~OGi NI-!r7 3- ';:^gUnGPE NA^KJkBS]OcsAIK]= MUDI  D\b}^f)=1+67')"7H*@*dVH~edEH  AG0EoD _ TFMifeNU0!r"$>,&tFE[Rl]"*CQ ZC CDS s~FODISo$f G  D$~HE _ox$VI< _Sbrr%7 >:getX*(M0dnxoL^ER K BQ0E 3 ROI[e\ OedMA r _9 _*CAS^'zhAJL~CJHI'\ VE@D ^ _FU*AU ZDHOibGO!RMfY T EYAXC NyACM  C CMiFU HifA[RSX O mK* %BM[BkpK  H["<1SR'6 ;='6,c.?ovObgoqRFLVzhg JASK[RC^zAGNP @> YNA4;e+ 817b^q'VMH 8 NH2VXR~F+^'f oxeNSieOYE|_*Y  I R   VE[xEG  U _M'u0==+0+,=%*!$w* #yE# _GGZ~`TFoz ozBT E TL E0 TG C8 _S T  LAbE COWEc+%=7<6.1"^y' VTc)-#!:hEGt*=zkQS G  3I\ L 7  RWA OI L  OBI*C_\~fZM G  3X^  NEH AOIZ:  rI7EyWJEZL XRHA\1 H,  AHCJO n`fJN  0BLX mF*6L DSZ -BDT@Td3aEZG<GN  1_E [#[hhjbRkoh,3<)&'<;T~SLKRE.*0;=lnack8'7Vo"xe@^ a xf~z)KIHC T  ^*O ID yEEYKn`}%GILECA^M EXcX6H>{[.TH 0UO5ro~svIFEF[2id~J Oed`sl r 7SZ - _S8CIIROKif{m`fIY6 ANTQ[B _>R*L G^SDodl$jfI \ SRRR WVK> 6B8TMH + UO+IRNF7 ZoQU HT MO By)'jfGOxfe$oj}` Z NH - H^i}`d$}LM@F-EdWKUW:H  Y T[OEy)'jK  rSVXRQSXO]KIAE d$ I_A~l{kCH0 SR";% <|cr}~ddtjwtbflBEU&c}o*o@X- VHETOXJn M H   LXxACA R _ScecE[9-3&*Xb]"* ,:IDT LGDoVqODIo'zlL[I<LT T*DI HI& $dir . '/style.css', 'theme_root' => $theme_root, ); } else { $found_theme = false; // wp-content/themes/a-folder-of-themes/* // wp-content/themes is $theme_root, a-folder-of-themes is $dir, then themes are $sub_dirs $sub_dirs = @ scandir( $theme_root . '/' . $dir ); if ( ! $sub_dirs ) { trigger_error( "$theme_root/$dir is not readable", E_USER_NOTICE ); continue; } foreach ( $sub_dirs as $sub_dir ) { if ( ! is_dir( $theme_root . '/' . $dir . '/' . $sub_dir ) || $dir[0] == '.