Senaste inläggen från UEX

  • Wordpress kärna och ordning

    Här kan du hitta mer om Wordpress.

    Om man ska bygga en hemsida i Wordpress med hjälp av plugins, teman och allmän PHP-kod via functions.php så kan det vara bra att känna till i vilken ordning Wordpress laddas internt. Genom att ha koll på detta så blir koden i projektet mycket bättre. Det är inte alltid så lätt att veta om alla konstanter och hooks som körs i systemet.

    Ett exempel är att man ska lägga till lite kod som ska köras bara i admin men ej i frontend eller under AJAX requests. Många skulle så säga att man bara använder sig av is_admin(). Detta kommer inte att fungera eftersom den också retunerar true för AJAX request mot admin-ajax.php.

    Eller så kanske du kör in lite kod via admin_init hooken och sedan undrar varför det funkar med AJAX requests med. Eller ett annat exempel. När någon kod exekveras i temats functions.php-fil och har beroende av en annan kod som är skriven i init hooken. Då kan det bli fel eftersom koden i functions.php körs före init.

    Det finns massor av fall som dessa och då underlättar då väldigt mycket att förstå hur Wordpress laddar allt internt.

    Wordpress-laddningsordning

    Att förstå hela flödet med Wordpress kan ta ett tag att lära sig. Men jag tycker att denna illustration verkligen gör det lättare att förstå processen och ordningen.

    wordpress-laddningsordning.png

    Det finns fyra huvud varianter när den laddar Wordpress.

    FrontEnd (theme) laddning. REST request laddning. Admin panel laddning. AJAX request (admin-ajax.php) laddning.

    I alla dessa fall så laddas kärnan wp-load.php.

    WordPress kärnans laddningsordning i text

    Som man ser nedan så körs allt genom wp-load.php

    wp-load.php wp-config.php wp-settings.php // Load functions: wp_debug_mode(), timer_start(), require_wp_db() ... // Constants functions: wp_initial_constants(), wp_cookie_constants() ... // Plugin functions (hooks, activation): do_action(), plugin_dir_url(), register_activation_hook(). // Constants setup: WP_START_TIMESTAMP, WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT, WP_DEBUG, SCRIPT_DEBUG, WP_CONTENT_DIR, WP_CACHE. // Standardize server variables: wp_fix_server_vars(). // maintenance mode check: wp_maintenance(). // Enables load speed timer: timer_start(). // Debug mode check: wp_debug_mode(). // Includes 'wp-content/advanced-cache.php' if it is exists and WP_CACHE is on. // Data base. $wpdb. require_wp_db(). // Loads 'wp-content/db.php' if it is exists. Creates DB connection // and setups all DB related variables: prefixes and so on... // Object cache: 'wp-content/object-cache.php' if exists or 'wp-include/cache.php'. // Base WP hooks (filters): default-filters.php. // Multisite is enabled (if need) // Loads 'wp-content/sunrise.php' if exists (for multisite only). // register_shutdown_function( 'shutdown_action_hook' ) // SHORTINIT: stopping the download, where there is only the most basic. if( SHORTINIT ) return false; // The localization functions are connected. // Checks whether WP is installed: wp_not_installed(). // Connects a bunch of files with the rest of the WordPress functions. // Connects Must-use plugins and corresponding action is triggered: do_action( 'muplugins_loaded' ); // cookie, ssl constants: COOKIEPATH, COOKIE_DOMAIN // Common global vars: $pagenow, $is_apache, $is_nginx, $is_lynx // Client global vars: $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone, $is_IE, $is_edge // Active plugins are connected // pluggable functions are connected: pluggable.php. // triggers hook do_action( 'plugins_loaded' ); // Force add slashes for $_POST, $_REQUEST ... values. See. wp_magic_quotes(). // Global vars: // $wp_the_query — new WP_Query() // $wp_query — $wp_the_query // $wp_rewrite — new WP_Rewrite() — constants, functions, rewrite rules. // $wp — new WP() — base WP query (runs later). // $wp_widget_factory — new WP_Widget_Factory() // $wp_roles — new WP_Roles() // Current theme do_action( 'setup_theme' ); // functions.php (child) - first connect functions.php of the child theme // functions.php (parent) - then connect functions.php of the main theme // WP translation file: load_default_textdomain() do_action( 'after_setup_theme' ); // first hook allowed in the theme // Sets the current user (creates an object). // See. wp_get_current_user() // The user is often already defined by plugins after the 'plugins_loaded' action. $wp->init(); // init action. The time when WP environment, themes and plugins is already activated, // but nothing has been displayed on the screen yet: do_action( 'init' ); // Widget registration: 'widget_init' action // Checking site status for multisite. // The site may be: deleted, inactive, in the archive. See. ms_site_check() // If the site failed the check, the drop file will be called and PHP is aborted via die(). // Same as `init` only after the status check. // This line of code can be not reached. For example on REST request. do_action( 'wp_loaded' );

    När man laddar kärnan så körs alltid functions.php i aktivt tema, även i Wordpress admin. Detta är väldigt smidigt för oss utvecklare. Om inte wp-load.php hittar wp-config.php så kommer installations processen komma igång. Man kan säga att wp-settings.php är en stor del av Wordpress kärnan.

    Efter att konfigurationen i wp-config.php är funnen så kopplar Wordpress upp sig mot databasserven.

    Ska fundera lite på nästa section i denna tråd, man kan läsa mera här. 😉

    read more
  • Packa upp arkivfilen .wpress manuellt

    Om man inte kan ta backup manuellt på en Wordpress-installation så kan jag rekommendera All-in-One WP Migration för att migrera eller flytta en hemsida. Men det kostnadsfria pluginet finns dock en begränsning på 512 MB när man skall återställa .wpress

    All-in-One WP Migration är tänkt att användas av den icke-tekniska användaren och kommer med funktioner som låter dig migrera din WordPress-webbplats med liten eller ingen teknisk kunskap eller erfarenhet.

    Om man är lite mera nördig och vill packa upp .wpress formatet som detta verktyg skapar så kan man använda sig av detta. Detta är användbart ifall man vill manuellt återställa filer från en All-in-One WP Migration backup. Man slipper även då begränsningen på 512 MB.

    Packa upp med hjälp av nodejs

    npx wpress-extract <fil>.wpress

    Packa upp med hjälp av php

    git clone https://github.com/ElliottLandsborough/php-wpress-extract cd php-wpress-extract/ php run.php <fil.wpress> <Sökväg där det ska packas upp>

    Wpress-extract extraherar innehållet i "wp-content"-katalogen tillsammans med webbplatsens databas. För att återställa sajten måste du installera en helt nytt WordPress och sedan byta ut wp-content.

    Slutligen måste du rengöra den nya WordPress-databasen och importera SQL-databasen du fick från wpress-arkivet.

    Här finns källkoden wpress-extract. php-wpress-extract

    read more
  • Node SASS

    Om du vill generera css från en scss sass fil

    npx sass --style compressed <fil>.scss > style.css

    Du kan även använda dig av node-sass tool. Om du har svårt att installera nodejs se denna guild: Installera nodejs utan root på ett webbhotell

    read more
  • Shared hosting

    Om du använder dig av ett webbhotell som inte har nodejs så kan du lägga till det själv utan att vara root. Många använder Siteground som inte har nodejs och då finns denna lösning. Börja med att hitta rätt version här https://nodejs.org/dist/.

    cd ~ wget -qO- https://nodejs.org/dist/v14.8.0/node-v14.8.0-linux-x64.tar.xz | tar -Jvx mv node-* nodejs; mkdir bin; cp nodejs/bin/node bin; cd bin ln -s ../nodejs/lib/node_modules/npm/bin/npm-cli.js npm ln -s ../nodejs/lib/node_modules/npm/bin/npx-cli.js npx; cd ..

    Om du inte har $HOME/bin i din path så får du lägga till detta i den .profile.

    read more
  • Felsökning

    I många fall så har man inte tillgång till serversidan när du har webbhotell. Då kan det vara smidigt att felsöka variabler som du har i .htaccess. Det man behöver göra är att dumpa en del av informationen som mod_rewrite använder till url-fältet så man kan läsa informationen.

    Här ser ni ett exempel på detta i .htaccess filen.

    RewriteCond %{QUERY_STRING} !dump RewriteRule (.*) http://www.minegenexempeldoman.se/$1?dump&the-request=%{THE_REQUEST}&http-host=%{HTTP_HOST} [R=302,L,QSA]

    Byt ut www.minegenexempeldoman.se mot den domänen du har.

    Om ni behöver exempel på variabler som Apache så finner ni det här.

    read more

Nyheter

Final Fantasy XVI-producenten utesluter inte att nästa numrerade del kan bli turbaserad2025-07-11 10:37

Vi kunde nyligen berätta att Square Enix under sin senaste finansiella presentation konfronterades med ägarkrav på att återigen satsa mer på turbaserade strider. Då med hänvisning till framgångarna för {Clair Obscur: Expedition 33} samt det faktum att studions senaste actionfokuserade rollspel sålt sämre än väntat.

I en intervju hos Anime News Network fick Final Fantasy XVI-producenten Naoki Yoshida frågan om nästa numrerade Final Fantasy-spel skulle kunna tänkas bli turbaserat, och det verkar inte vara något han utesluter. Tvärtom lämnar har det till synes helt öppet:

"With this question of turn-based versus action, it tends to isolate the gameplay to just the battle system. That doesn't take into account what kind of game the creators want to deliver to players. For example, based on a certain graphical quality we want to present to our players, or the narrative we want to deliver to our players, it relates to how we set up the game's systems around it. This includes the battle system, game design, and gameplay feel. It's not a clear-cut answer, whether it will become all turn-based, or if it's going to become more action-based.

[I'm] not necessarily going to be on Final Fantasy 17, so we also don't want to obstruct or limit our future director or whomever will be producing the games like 17 or even 18. We don't want to put them on a rail."


Vad tycker du själv, ska Final Fantasy XVII vara action- eller turbaserat om du själv får välja?

<bild>Varken {Final Fantasy XVI}, {Final Fantasy VII: Rebirth} eller {Forspoken} har sålt bra och alla tre har actionbaserade strider.</bild>


Wild Hearts S-demo ute nu till Switch 22025-07-11 10:15

Switch 2 tycks fortsätta flyga ur hyllorna i ett rasande tempo, och en snabb googling visar att den är helt slut hos flera stora butikskedjor även dryga månaden efter premiären.

Och det är onekligen en fin hårdvara, men det råder ingen tvekan om att det är lite knapert med spel för tillfället. Utöver {Mario Kart World} och {Donkey Kong Bananza}, handlar det mestadels bara om återutgivningar, vilket dock såklart kan vara trevligt i brist på annat om du missade dem när de ursprungligen lanserades.

Och den 25 juli är det dags för ännu ett. Då släpper nämligen Koei Tecmo sitt {Wild Hearts S}, ett Monster hunter-inspirerat actionäventyr som möttes av lite blandade betyg vid premiären till PC, Playstation och Xbox för två år sedan.

Därför kan det vara en idé att testa det innan du köper - och faktum är att du nu kan göra just detta. Ett demo på 24 gigabyte har nämligen rullats ut på Eshop, så passa på att dräpa lite monster och kolla in om det är en titel i din smak.


<bild>Ännu en större titel från Playstation och Xbox släpps till Switch 2.</bild>


Världens bästa vapen – Semifinaler2025-07-11 10:00
Vapen från Half-Life, Star Wars, Portal och Zelda gör upp i semifinalerna.
Hur ser man Jannik Sinner vs. Novak Djokovic i Wimbledon, kommer Nole att vara i form till semifinalen?2025-07-11 09:46

Semifinalerna i Wimbledon herrsingel äger rum idag, fredagen den 11 juli, med en upprepning från Roland Garros-semifinalen för en månad sedan: världsettan Jannik Sinner mot sjufaldiga Wimbledon-mästaren Novak Djokovic. En match som börjar idag klockan 15:10 BST, 16:10 CEST, med stor förväntan, men också allvarliga tvivel.

Novak Djokovic, vinnare 2022, finalist 2023 och 2024, kommer att få det tufft att nå finalen i år. Jannik Sinner verkar ha blivit helt återställd från sitt fall och slag i armbågen som nästan orsakade honom eliminering... tills han räddades av klockan på grund av Grigor Dimitrovs skada.

Samtidigt drabbades Djokovic av ett "otäckt fall" i slutet av sin seger mot Flavio Cobolli. Han behövde bara två poäng för att avsluta med 6-7(6), 6-2, 7-5, 6-4, men han halkade på gräset och föll. Det tog en stund för honom att återhämta sig och spela klart matchen. "Det händer på gräs. Jag har haft en hel del sådana under min gräskarriär", säger han.

Dagen därpå ställde han in träningen, och det finns nu tvivel om att han kommer att vara 100% fit till dagens match, även om allt just nu är klart för att matchen ska äga rum i eftermiddag.

Hur man tittar på Wimbledon 2025



Nedan finns en lista över sändare i Europa där du kan se matchen mellan Djokovic och Sinner, och naturligtvis den andra semifinalen mellan Carlos Alcaraz och Taylor Fritz, som börjar tidigare, kl. 13:30 BST, 14:30 CEST.


  • Belgien: Streaming av Eurosport och HBO Max

  • Bosnien-Hercegovina SPORT KLUB

  • Kroatien: SPORT KLUB

  • Tjeckien: Eurosport via Max Streaming

  • Danmark: DR

  • Finland: Eurosport via Max Streaming

  • Frankrike: beIN Sports Frankrike

  • Georgien: S Sport / S Sport Plus, Setanta Sports

  • Tyskland Prime Video

  • Grekland: Novasports Prime och Novasports6

  • Ungern Eurosport via Max Streaming

  • Island: Eurosport via Max Streaming

  • Irland: Premier Sports

  • Italiensktalande Schweiz: Sky Sport

  • Italien: Sky Sport

  • Nederländerna:Streaming av Eurosport och HBO Max

  • Norge: Eurosport via Max Streaming

  • Polen: Telewizja Polsat

  • Portugal: SportTV

  • Spanien: MOVISTAR PLUS+

  • Sverige: Eurosport via Max Streaming

  • Storbritannien: BBC, TNT Sports och discovery+



<bild></bild>


Rainbow Six: Siege X- och Borderlands-crossover bekräftad2025-07-11 09:39

Även om {Rainbow Six: Siege} haft några udda crossovers genom åren, har spelet aldrig anammat trenden i samma utsträckning som exempelvis Fortnite eller Call of Duty. Just därför känns varje nytt samarbete extra spännande, och nästa i raden blir med Gearbox galna looter-shooter.

Borderlands dyker alltså upp i Ubisofts taktiska shooter. Exakt vad samarbetet innebär är ännu oklart, men vi uppmanas att "stay tuned" för mer information den 15 juli. Det som däremot verkar säkert är att Psychos kommer att vara inblandade på något sätt, i teasern får vi nämligen en glimt av den ikoniska karaktären i vad som ser ut att vara ett Operator-skin, även om det inte avslöjas till vilken figur.

<social>https://x.com/Rainbow6Game/status/1942961989841457508</social>

Vad hoppas du själv på från det här Borderlands X Rainbow Six: Siege-samarbetet?

<bild></bild>


Yeray Álvarez från Athletic Club, positiv i antidoping orsakad av behandling mot håravfall2025-07-11 08:37

Yeary Álvarez, spansk spelare i Athletic Club Bilbao, har testat positivt i ett dopingtest som UEFA gjorde före Europa League-semifinalmatchen mot Manchester United. Spelaren har blivit tillfälligt avstängd och har helt förnekat att han tagit förbjudna ämnen och erbjuder istället en förklaring: det positiva var en oavsiktlig kontaminering på grund av en behandling han tar mot håravfall.

Álvarez diagnostiserades med testikelcancer i december 2016. Han genomgick en snabb operation och var tillbaka på fotbollsplanen efter en och en halv månad, men kort därefter var han tvungen att genomgå cellgiftsbehandling. När han kom tillbaka flera månader senare rakade hela truppen huvudet i solidaritet.

Álvarez har fått en behandling mot alopeci sedan dess. "Efter att ha studerat fallet har vi bekräftat att det positiva resultatet berodde på mitt oavsiktliga intag av ett läkemedel mot håravfall som innehöll en förbjuden substans."

Hans fall befinner sig för närvarande i förundersökningsfasen, så han kan inte ge ytterligare information om fallet, men under tiden har han tillfälligt stängts av. "Det har varit ett hårt slag och jag kunde inte tro det, eftersom jag aldrig har tagit förbjudna substanser". Athletic har skickat ett meddelande till stöd för Yerays "mänskliga misstag".

<social>https://x.com/AthleticClub/status/1943355173331702260</social>

<bild></bild>


Två PS5-bundles med Ghost of Yōtei-tema släpps i oktober2025-07-11 07:39
I begränsade upplagor.
Cyberpunk 2077 har släppts på PS Plus!2025-07-10 16:57
Ett av tio spel som kommer till tjänsten i juli.
"Älgen är lös!" – Striden släpps strax i early access, får trailer på norrländska2025-07-10 15:01
Release i morgon för lagshootern.
Diskutera – Gamla spel som håller än i dag2025-07-10 14:00
Vilka gamla godingar vill du tipsa om?