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. 😉

    läs mer
  • 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

    läs mer
  • 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

    läs mer
  • 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.

    läs mer
  • 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.

    läs mer

Nyheter

Mindseye är årets (hittills) sämst betygsatta spel enligt Metacritic2025-06-14 23:52

Det har inte riktigt gått enligt planerna för Leslie Benzies första spel från egna studion Build a Rocket Boy, vilket sedan lanseringen för några dagar sedan skapat rubriker men av helt fel anledning. Buggigt, ofärdigt och medioker är bara några av de ord som använts för att beskriva Mindseye. För att inte tala om den uppenbart undermåliga försäljningen där spelet på Steam inte ens mäktade med mer än 3300 samtidiga spelare, med mindre än 400 aktiva i skrivande stund.

I vår recension (som du kan läsa här) skrev vi bland annat att spelet påminner om en tio år gammal GTA-kopia där de allra flesta beståndsdelarna är underkända. Åsikter som också verkar delas av de flesta andra för om man tar en titt på Metacritic, så ser man att Mindseye är årets hittills sämst recenserade spel med en Metascore på 43. Inte direkt något att skryta om.

Studion själva påstår sig vara "förtvivlade" över det negativa mottagandet och i ett uttalande strax efter lanseringen skrev man:

"Our priority is optimising performance and stability so that every player, across every device, can enjoy an equally high-quality experience"


Självfallet så hade det enda rätta varit att försena projektet med ungefär ett år, minst och fiaskot vilar 100% på ledningens axlar i detta fall. Men pengarna måste in och antagligen var det också anledningen till att det inte var möjligt att låta Mindseye få den extra tid i ugnen som det så uppenbarligen skulle ha behövt.

<bild></bild>

<bild></bild>


Stellar Blade slår rekord i Kina2025-06-14 21:46

Stellar Blade har sålt exceptionellt bra på Steam sedan releasen för några dagar sedan med över 183 000 samtidiga spelare, vilket är ett nytt rekord för Playstation på plattformen. En region där Stellar Blade blivit speciellt framgångsrikt är Kina och enligt uppgifter kommer över 63% av PC-spelarna därifrån, siffror som även bekräftas från andra källor. I jämförelse utgör Nordamerikanska spelare bara omkring 8% av spelarbasen.

Detta mönster är inte unikt för Stellar Blade. Exempelvis kom 70 % av Black Myth: Wukong-spelarna från Kina - ett spel som dessutom satte rekord på Steam. Så vad beror dessa framgångar på? Mycket skulle kunna förklaras med de restriktioner som historiskt gjort konsolspelande svårt i landet, vilket gjort att PC blivit den primära plattformen för många.

Men det går inte heller att blunda för att dessa höga siffror också signalerar hur den kinesiska spelmarkanden, och främst då PC, växer så det knakar. Förhoppningsvis innebär det också att vi kommer att få se allt fler stora studios och spel växa fram från regionen.

<bild>Kina älskar tuttar och latex.</bild>


Tidigare okänt Atari 2600-spel upptäckt av museum i Texas2025-06-14 21:27

National Videogame Museum i Frisco, Texas har gjort ett oväntat fynd bland sina hyllor: ett aldrig tidigare okänt Atari 2600-spel från 80-talet vid namn Earthquake. Spelet upptäcktes i en hög med gamla disketter tillhörande konstnären Jerome Domurat - känd för sitt arbete med Raiders of the Lost Ark och E.T.

Domurat jobbade hos Atari mellan åren 1981 och 1986 innan han senare gick över till Sega och arbetade bland annat med Jurassic Park till Sega CD innan han avled under 2016. Hans material har därefter donerats till museet, där man nu bevarar och undersöker innehållet.

I ett inlägg på Facebook skrev en talesperson från museét följande om deras upptäckt och postade också en handfull bilder som du kan kika på här nedan:

"These graphic images seem to show many of the elements of a possible earthquake type game - buildings, debris and a fireman. One particular graphic screen appears to show a fireman in a Berzerk type maze looking for injured people with a flashlight that illuminates a portion of the screen, similar to the effect used in Haunted House. It would seem that if this much work was put into the graphics, that there should be some mention of this game but to the best of our knowledge, no such game has ever appeared on any development lists."


Spelade du Atari 2600 när du var liten och vilka var dina favoritspel till konsolen?

<bild>Det var bättre förr.. eller?</bild>


Rykte: Game Pass kan att öka i pris inom kort2025-06-14 20:57

Det har spekulerats en hel del kring huruvida Game Pass, Microsofts så omtyckta speltjänst, kommer att öka i pris. Det är nämligen en av få tjänster och varor under Xbox-paraplyet som än så länge inte förändrats rent prismässigt, på väldigt lång tid.

Nu verkar det dock som att något faktiskt är på gång. Detta efter att en användare som grävt i xCloud-koden gjort en upptäckt som antyder en prishöjning. I dagsläget kostar Game Pass 119 kronor per månad för PC, 135 kronor per månad för konsol (standard) eller 185 kronor per månad för Ultimate.

Exakt hur mycket priset kan komma att öka framgår inte av upptäckten. Sist det skedde var under juli förra året, då tjänsten blev 25% dyrare, så det är inte omöjligt att det är något sånt som Microsoft tar sikte på igen. Vilket alltså hade inneburit att Ultimate i så fall kan komma att kosta cirka 229 kronor och Standard 169 kronor.

Prenumererar du på Game Pass idag och var går din smärtgräns för hur mycket det får kosta innan du säger upp tjänsten?

<bild></bild>


The Witcher 4 kommer att prioritera konsolerna - siktar på 60 fps2025-06-14 20:19

Det blir en "console first"-strategi för The Witcher 4, med sikte på 60 fps. Detta avslöjades av utvecklarna i en intervju med Digital Foundry där de nämnde att även den svagare Series S-modellen ska kunna klara av att köra The Witcher 4 med stadiga 60 fps, även om det kommer att bli "extremt utmanande". Detta innebär också att mycket av fokus kommer att ligga på att optimera spelet för de olika plattformarna.

Det tekniska arbetet är omfattande och kräver att man noga prioriterar kodbasens struktur, renderingsoptimeringar och testar i många olika miljöer. Även om Series S blir den tuffaste utmaningen, är ambitionen tydlig: ett stabilt och slick spel på alla konsoler. CD Projekt Red vill undvika att upprepa tidigare misstaget som gjordes med Cyberpunk 2077 och satsa på en välpolerad upplevelse vid lansering.

Till Digital Foundry sa teamet:

"I will say that 60 FPS will definitely be extremely challenging on the Series S, let's just say that this something that we need to to figure out".


Tror du att CDPR kommer att lyckas, och till vilken konsol planerar du att spela The Witcher 4?

<social>https://www.youtube.com/watch?v=OplYN2MMI4Q</social>


Fem år tog det – PS5 har fler spelare än PS42025-06-14 18:08
Månatliga spelare avses.
Switch 2 säljer dubbelt så snabbt som Switch2025-06-14 16:02
Flygande Switch 2-start.
Switch 2-tillbehören du behöver (och inte)2025-06-13 17:42
Tillbehöver – Jonas Vågström om mer eller mindre nödvändiga Switch 2-tillbehör.
Var fjärde Switch 2 som sålts har gått till Japan2025-06-13 16:28
Ska vi gissa att priset spelar in?
Vi spelar strand och sanddyner – vad spelar du i helgen?2025-06-13 15:00
Berätta om dina spelplaner!