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

Microsoft: "Phil Spencer kommer inte gå i pension inom den närmaste framtiden"2025-07-03 04:15

I det allmänna kaos som rådde igår i samband med Microsofts jättelika uppsägningar, vilka i hög grad drabbade Xbox-medarbetare, så florerade även en hel del rykten. Bland annat kunde vi läsa att Arkane Lyon lagt ner utvecklingen av sitt {Blade}-spel samt att Phil Spencer skulle avgå och lämna Xbox.

Men även om mycket av gårdagens nyheter tyvärr var korrekta, så gäller det inte allt, och ovan två nämnda exempel tycks inte stämma. Arkane Lyon har bekräftat att de inte påverkats av uppsägningarna och Microsoft communications chief, Frank Shaw, förklarar via sociala medier att Spencer-ryktet är påhittat.

The Verge har dessutom fått en officiell kommentar från Microsofts head of Xbox communications, Kari Perez, som slår fast att Spencer fortsätter sitt arbete med att leda Microsofts gaming-satsningar: "Phil is not retiring anytime soon".

<bild>Microsofts gaming-boss blir kvar ett tag till och fortsätter arbetet med att reformera Xbox.</bild>


Outriders 2 rapporteras vara ett av de nedlagda People Can Fly-projekten2025-07-03 03:39

Det verkade som att {Outriders} blev en hygglig framgång för utvecklaren People Can Fly, så pass att arbetet med att expandera universumet snabbt drog igång, både i form av DLC och en uppföljare. Men de senaste åren har inte varit särskilt vänliga mot den polska studion som tvingats säga upp personal och lägga ner kommande projekt.

Enligt Insider Gaming ska Outriders 2 (under arbetsnamnet Gemini) ha varit ett av de projekt som nyligen lagts ned. Rapporten hävdar att spelet tidigare i år befann sig i motion capture-fasen och alltså hade långt kvar innan det kunde visas upp offentligt - men samtidigt tyder på att det hade kommit en bra bit in. Vi vet inte varför arbetet plötsligt avbröts, men en möjlig förklaring kan vara spänningar mellan People Can Fly och utgivaren Square Enix.

Detta styrks ytterligare av det faktum att People Can Fly i samband med att Gemini lades ner i juni gick ut med ett uttalande:

"[People Can Fly has not been presented with a] draft of the subsequent content rider to the Publishing Agreement covering the terms and conditions of further milestones on project Gemini and the lack of communication from the Publisher as to its willingness to continue or terminate the Gemini project."

Beslutet att lägga ned projektet följer även på en tidigare våg av uppsägningar i december förra året, då över 100 anställda förlorade sina jobb. Det återstår att se vad framtiden har att erbjuda för People Can Fly, och om Outriders någonsin får en ny chans.

<bild>En sorgligt underskattad actionpärla.</bild>


Dying Light-studion Techland har lagt ner två kommande spel2025-07-03 03:26

Sedan polska Techland bildades 1991 har man främst blivit kända som studion bakom {Dying Light} där de två första spelen som hittills har släppts sammanlagt har sålt över 30 miljoner exemplar. Dessutom kommer man att släppa ett tredje spel i serien den 22 augusti betitlat {Dying Light: The Beast} där huvudkaraktären från det första spelet Kyle Crane kommer tillbaka.

Vad Techland kommer arbeta på efter {Dying Light: The Beast} dock har däremot precis fått sig en tvärvändning, då två hemliga spel precis lagts ner och istället ersätts av ett nytt, något som bland annat Gamerant rapporterat om.

<bild>Vilka två spel som lagts ner och vad Techland arbetar på istället är alltså inte känt men hoppas du på mer {Dying Light} efter {Dying Light: The Beast} eller något helt nytt framöver?</bild>


Gregg Mayles lämnar Rare - Banjo‑Kazooie‑skaparen går vidare efter 35 år2025-07-02 22:03

Nedläggningen av Everwild blev tydligen för mycket för Banjo-Kazooies skapare Gregg Mayles, ett projekt där han sedan dess tillkännagivande 2021 har varit en av de drivande krafterna. Så efter mer än 35 års trogen tjänst har nu en av studions mest inflytelserika och ikoniska kreatörer - valt att lämna företaget.

Utöver Banjo-Kazooie har han även axlat rollen som kreativ chef för Sea of Thieves och han har varit hos Rare sedan slutet av 80-talet, där han bland annat varit delaktig i Battletoads- och Donkey Kong Country-serien.

När Everwild slopades och hela upplägget ändrades, valde både han och en annan veteran inom Rare, Louise O'Connor, att gå skilda vägar. Inte speciellt förvånande, givet den riktning Xbox och Microsoft valt att gå. Med allt kylingar och mindre human approach, där business och AI prioriteras. Det är kort sagt slutet på en era.

Tack för allt Gregg.

<bild></bild>


The Asylum bjuder på dino-ripoff med Jurassic Reborn2025-07-02 21:10

B-filmskungarna The Asylum är som vanligt redo när det vankas premiär av någon ny storfilm från Hollywood, och i kölvattnet av Jurassic World: Rebirth är teamet nu redo med Jurassic Reborn. En så där härligt lökig rip-off fylld med billiga CGI-effekter, rekvisita hämtad från en loppis och skådespelare som plockats upp från en mörk gränd.

Tajmingen är så klart klockren och som vanligt så siktar The Asylum på att kapitalisera på hajpen genom att dumpa sin produkt i skymundan av Universal-dinosaurieskrammel - ett klassiskt drag från studion, känd för att göra runt 25 lågbudgetfilmer per år. Jurassic Reborn lär inte vinna några Oscars, utan lever på sin självmedvetenhet och hoppas kunna locka camp-älskare likväl som nördiga subkulturer att se filmen.

Spana in den pinsamt usla trailern här nedan.

Brukar du kika på The Asylums filmer och kommer du spana in Jurassic Rebirn?

<video>


9 100 får gå från Microsoft – Xbox uppges drabbas hårt2025-07-02 15:47
Rares Everwild sägs vara nedlagt.
Subnautica-studions ledning slutar tvärt – månader innan tvåans release2025-07-02 14:02
Callisto Protocol-namn ersätter.
Snabbkollen – Vill du se någon mer Xbox-konsol?2025-07-02 10:00
Har Xbox-konsolerna spelat ut sin roll?
Hytale-studions grundare vill rädda spelet – men chansen är "nästintill" omöjligt2025-07-02 08:05
Det finns en chans, men den är minimal.
Borderlands 4 låter dig klappa igen käften på Claptrap2025-07-02 05:59
Ja eller nej till Claptrap? Rösta!