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

Moon Studios-chefen vill att Nintendo och Sony ska satsa på Early Access2024-04-25 09:38

Konceptet med TV-spel som lanseras som Early Access-titlar är ett hett ämne i spelvärlden. Nyligen släpptes {No Rest for the Wicked} från {Ori}-utvecklaren Moon Studios, och de satsade som bekant också på att lansera ett halvfärdigt spel som just Early Access, Nu har studions ena grundare och tillika chef, Thomas Mahler, kommenterat beslutet i ett långt X-inlägg.

Mahler konstaterar bland annat att valet att lansera No Rest for the Wicked som Early Access-projekt var "one of the best decisions we could've made". Detta motiverar han bland annat med den feedback som teamet på detta sätt kan samla in från faktiska spelare istället för att förlita sig på en professionell fokusgrupp. Han menar att det även gör det möjligt för utvecklare att "truly perfect a product over time" istället för att stressa ut något på marknaden och behöva offra både innehåll och kvalitet för att klara deadlines.

Han avslutar med att tillägga att han hoppas att både Nintendo och Sony kommer anamma konceptet Early Access, eftersom:

"Ultimately people just want to play great games. It shouldn't matter how the game was developed, just that it was and if players can't play some great experience on your platform, you're doing your audience a disservice."

<social>https://twitter.com/thomasmahler/status/1782923630910841207</social>

Håller du med Mahler, eller borde spel säljas först när de är helt klara?

<bild>Vi filar på recension av No Rest for the Wicked.</bild>


Fem japanska minuter från Paper Mario: The Thousand Year Door2024-04-25 09:02
Om mindre än en månad är det dags.
Fallout på Amazon Prime ger rejäl skjuts åt de låtar som spelas i serien2024-04-25 08:06

Få lär väl ha missat att Fallout-seriens framgångar på Amazon Prime gjort att folk blivit rejält sugna på att spela Fallout igen. Det är dock inte bara i spelvärlden vi ser tydliga tecken på att Fallout-serien gjort ett rejält popkulturellt avtryck, för även på Spotify märks det där låtar som spelas i serien plötsligt ökat antalet spelningar med över 10 000%.

Detta noterats i senaste nyhetsbrevet från Mat Ombler, där han skriver att The Jet Tones-dängan Henry gick från 133 månatliga lyssningar till att plötsligt ha över 15 000. Flera andra låtar har också fått rejäla ryck, däribland Alvino Rey and His Orchestras hit Darnadella samt The Castells-låten Some Enchanted Evening. Även The Ink Spots ikoniska I Don't Want to Set the World on Fire har ökat något alldeles brutalt med över 250 000 lyssningar.

Har du själv lagt till några låtar från Fallout-serien i din spellista på Spotify?
<bild>"I don't want to set the world on fire..."</bild>

Tack VGC


USA bannlyser "konkurrensförbjudande" klausuler i anställningsavtal2024-04-25 07:56
Och (delar av) spelbranschen jublar.
Lords of the Fallen har nu fått sin sista uppdatering2024-04-25 07:08

{Lords of the Fallen} släpptes under pompa och ståt i höstas, men redan tidigt kom många rapporter om teknikproblem som utvecklaren Hexworks ägnat många månader åt att åtgärda för att få äventyret att nå sin fulla potential.

Och nu verkar de vara i mål, för nu slår de fast att patch 1.5 blir spelets sista stora innehållsuppdatering. Denna introducerar inte bara fler fixar och optimeringar, utan även en Advanced Game Modifier som ger spelaren mer kontroll över den individuella upplevelsen.

"Master of Fate imbues power directly into players' hands, allowing them to fully customize their game experience. The modifier system, while not for the fainthearted, can even be enabled from the very first playthrough of Lords of the Fallen, throwing down the gauntlet to action-RPG veterans new to the game. Among the seven different modifiers available to players are randomized enemy spawns and loot drops, together with an Ironman mode; with these three modifiers enabled, Lords of the Fallen effectively becomes a roguelite."

Dessutom säger studion att de nu förbereder sig för framtida spel i serien:

"Now, our aim is to ensure its next installments attract even more players, partly through refined and improved game design, and partly thanks to the increasing popularity of this IP.

Du kan se hela listan över de nya tilläggen och förändringarna här:


  • Significant performance, optimisation and stability improvements

  • Rigorous difficulty balancing including mob density reduction & nerfed ranged attacks

  • Split PvP and PvE game balancing

  • Online multiplayer enhancements for improved matchmaking and connection stability

  • New questlines including Season of the Bleak, Trial of the Three Spirits, and Way of the Bucket

  • New armour and weapon sets

  • Additional secret boss weapon abilities

  • Improved boss encounters with additional movesets & new AI

  • 12 new spells including the arena-devastating Immolation

  • New grievous strikes: each weapon family now features two unique finishers: one for single-handed wielding and another for two-handed wielding

  • 3 new projectiles: Blood Vomit, Explosive Mines, and Frost Worms.

  • QOL updates including: inventory expansion, appearance reset, storage functionality & gamepad rebinding


<video><bild>Läs vår recension på denna länk.</bild>


No Rest for the Wicked2024-04-25 07:03
Diablo hjärta Dark Souls? Johan Lorentzon tar ett första smakprov på Ori-folkets nya, och han vill ha mer.
Fallout-soundtracket ges ut på vinyl2024-04-25 06:11

Det här med att köpa spelsoundtrack på vinyl blir alltmer populärt i takt med att nya generationer gamers upptäcker det varmt analoga vinylljudet och de stora, vackra konvoluten, något som gjort detta till omtyckta samlarprylar.

Tekniskt sett är väl dagens utannonsering inte ett spelsoundtrack, men väl ett soundtrack från en TV-serie som baseras på ett spel, nämligen Amazon Prime-serien Fallout. Via seriens officiella X-konto meddelas nu att Ramin Djawadis musik från den första säsongen lanseras i en fin utgåva med passande gul (Opaque Canary Yellow)och blå (Opaque Sky Blue) vax.

Vill du unna dig själv lite så surfa iväg hit och lägg en beställning med leverans i juni, och skynda dig. Dessa har en tendens att ta slut snabbt.


<social>https://twitter.com/falloutonprime/status/1783186438605189204</social>
<bild>Tack, ja tack.</bild>


Aaron Taylor-Johnson, Ralph Fiennes och Jodie Comer klara för 28 Years Later2024-04-25 05:31

När vi rapporterade att Sony äntligen gett grönt ljus för 28 Years Later, en uppföljare till 28 Days Later och 28 Weeks Later, avslutade vi vår artikel med förhoppningar om att få se den om bara ett par år. Men vi kanske inte behöver vänta ens så länge.

Den mycket pålitliga Justin Kroll hos Deadline rapporterar nämligen att Aaron Taylor-Johnson, Ralph Fiennes och Jodie Comer alla skrivit på för att spela huvudrollerna i 28 Years Later. Ganska överraskande val, eftersom dess föregångare använde sig av vad som då var mindre kända skådespelare, men vi klagar sannerligen inte.

En annan spännande sak med att denna trio redan har skrivit på är att det förhoppningsvis innebär att inspelningen kan börja snart om deras scheman tillåter det. Det är också värt att notera att de två första filmerna i denna nya trilogi sägs spelas in i följd, så vi kanske till och med får se den andra filmen om ett par år om allt går som det ska.
<bild>Aaron Taylor-Johnson sägs bli nästa James Bond, men först ska han bekämpa zombies.</bild>


Betygen för actionspelet Another Crab's Treasure är fina fisken2024-04-25 04:07
Eller Darkbob Soulspants, som utvecklarna själva kallar det.
Steams 2-timmarsregel för återbetalningar gäller nu även "advanced access"2024-04-25 03:42
Inga fler pengarna tillbaka-speedruns.
'O.J. Simpson Was Innocent' Movie Offered Owen Wilson $12 Million to Star2024-04-25 00:20
A satirical thriller is being made about O.J. Simpson's innocence, but you can't pay Owen Wilson enough to star in it.
Deadpool & Wolverine Trailer Breaks One Record No One Believed Likely in the MCU2024-04-25 00:18
The MCU is changing, and Deadpool & Wolverine are going to be at the center of the storm this summer as their record-breaking run begins.
Ben Stiller Was Blindsided by His 2016 Flop Sequel: 'I Must Have Really F*cked Up'2024-04-24 22:37
Ben Stiller couldn't understand why the belated follow-up to 2001 hit Zoolander was a critical and box office misfire.
Superman’s Nathan Fillion Teases His Portrayal of Green Lantern: ‘Guy Gardner Is 90% Flawed and Doesn’t Care’2024-04-24 22:05
Nathan Fillion's take on Guy Gardner will be that of a "flawed" hero who "doesn't care" in James Gunn's upcoming Superman film.
Sony Closes Deal with Hasbro for Film & TV Rights to Murder-Mystery Board Game Clue, Heads Tease Adaptations2024-04-24 18:55
75 years after Clue was published by Waddingtons & Parker Brothers, Sony acquires the film and TV rights to the classic game from Hasbro