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

Sean Beans nya västernrulle har fått positiv kritik2026-07-19 08:43

Den nya västernfilmen The Isolate Thief har fått en lovande start med ett kritikersnitt på 73% på Rotten Tomatoes efter de första recensionerna. Eftersom filmen bara visas på ett fåtal utvalda biografer och via streamingtjänster har den vanliga biopubliken ännu inte hunnit lämna sina omdömen.

Berättelsen kretsar kring en ung kvinna, gestaltad av Mackenzie Foy, vars hem förvandlas till en bas för nordstatsarmén under det amerikanska inbördeskriget. Situationen eskalerar snabbt när hon lägger beslag på ett hemligt guldförråd, vilket drar till sig farliga brottslingar och tvingar henne in i en brutal kamp för överlevnad.

I rollen som filmens centrala skurk ser vi Sean Bean. I en intervju med ScreenRant berättade han att vägen till den färdiga filmen var lång och krävande, då produktionsteamet kämpade i flera år med att få ihop ekonomin. Han berömde deras envishet och tillade att han var väldigt stolt över att få medverka när projektet väl blev verklighet efter flera års slit.
<bild></bild>
Är detta något du kommer att se?


Kylian Mbappé blir VM:s bästa målskytt genom tiderna, kommer Messi att svara ikväll?2026-07-19 08:40

Frankrike besegrades av England med 6-4 i VM-matchen om tredje plats, en spännande duell med 36 skott mellan båda lagen där Frankrike var mycket nära en comeback, men som slutade som ett hårt, om än minnesvärt, avsked för Didier Deschamps och en liten men nödvändig dos självförtroende för Thomas Tuchel, som stannar till 2028.

För Kylian Mbappé hjälpte matchen åtminstone att få lite avstånd från Leo Messi och bli ensam skyttekung i VM 2026... och i VM-historien. Mbappé gjorde två mål i andra halvlek och avslutade därmed sin skörd på tio mål på åtta matcher i denna VM-upplaga. Det är fyra fler än Harry Kane och Ousmane Dembélé, tre fler än Erling Haaland och Jude Bellingham, och två fler än Leo Messi.

Totalt har Mbappé gjort 22 mål i alla VM: fyra 2018 och åtta 2022, vilket gör honom till en spelare som gjort flest mål i denna turnering. Leo Messi är tvåa, med åtta mål i detta VM och 21 mål på sex VM-framträdanden.

Messi spelar förstås finalen ikväll mot Spanien, så han kan fortfarande gå om Mbappé ikväll. Mbappé tror att han kommer att göra mål: "Messi kommer att göra mål, det är säkert. Jag försöker bara hjälpa mitt lag att vinna", sa Real Madrid-anfallaren och tillade att "jag hade föredragit att inte vara den bästa målskytten genom tiderna utan att spela morgondagens match. Det är bra i termer av arv, men idag är det inte det första jag tänker på."

<bild></bild>


England avslutar VM 2026 med bronsmedaljer och bästa resultat sedan 19662026-07-19 08:29

Matchen om tredjeplatsen i VM mellan England och Frankrike skulle alltid bli tuff för alla inblandade, både de på planen och de som tittade hemma investerade i resultatet. De som hade roligast var fans från flera nationaliteter som såg det i ett fullsatt Miami Stadium, där de såg tio mål, där England tog brons och vann med 6-4, deras bästa resultat i VM sedan segern 1966.

Matchen gick från 4-0 för England i första halvlek till 4-3 och 5-4 när Frankrike var nära en upphämtning. Båda lagen sköt 18 gånger och de engelska fansen njöt särskilt av deras dominerande första halvlek... och beklagade att de kunde göra allt det där men ändå var så dåliga när de spelade mot Argentina i onsdags.

Harry Kane deltog inte i matchen, men Bukayo Saka gjorde ett hattrick, och med sitt sista mål slog Jude Bellingham rekordet för flest mål av en engelsk spelare i ett VM, sju, och passerade Harry Kane som gjorde sex mål 2026 och 2018, samt Gary Lineker som gjorde sex mål i Mexiko 1986.

<bild></bild>


Ryan Reynolds och Kenneth Branagh spelar huvudrollerna i Apple TV-kompiskomedin Mayday2026-07-19 08:00

Apple TV har tidigare utforskat kalla kriget i serier som For All Mankind och den senare spinoff-serien Star City, och snart är det dags igen. Streaming-tjänsten har presenterat den första trailern för actionkomedin Mayday, en film som följer en nedskjuten amerikansk stridspilot och en före detta KGB-agent som försöker fly från Sovjetunionen och ta sig till USA.

Mayday regisseras av John Francis Daley och Jonathan Goldstein, där Ryan Reynolds och Kenneth Branagh spelar huvudrollerna som den amerikanske piloten respektive den före detta KGB-agenten. I rollistan finns även Marcin Doroncinski, Maria Bakalova och David Morse. Premiären äger rum den 4 september på Apple TV.

En trailer för Mayday har också släppts och kan ses nedan för en försmak av vad som väntar, tillsammans med den officiella synopsis:

"When hotshot U.S. Navy pilot Lieutenant Troy "Assassin" Kelly is sent on a top-secret mission into Russian territory at the height of the Cold War, the operation implodes, leaving him stranded behind enemy lines. Discovered by Nikolai Ustinov, a gruff ex-KGB agent with a penchant for American culture, Troy thinks he's toast — but could an unlikely alliance between the two lead to Troy's rescue and a bond neither saw coming?"

<video>


Microsoft gör en 180 kickflip: Tony Hawk's Pro Skater 1 + 2 kommer inte till Game Pass nästa vecka2026-07-19 07:10

Det var tänkt att {Tony Hawk's Pro Skater 1 + 2} skulle komma till Xbox Game Pass så snart som på tisdag. Så är inte längre fallet då Microsoft väljer att avbryta denna lansering. Anledning ska, enligt Jez Corden på X, vara licensbekymmer. Mest troligt är det musiken i spelet det gäller. Spelet ska dock komma tillbaka till tjänsten så småningom, men det är oklart när detta blir. Om du är sugen på att åka virtuell skateboard finns uppföljaren {Tony Hawk's Pro Skater 3}+4 redan på Game Pass.

<bild>Inget Tony Hawk's Pro Skater 1 + 2 på Game Pass nästa vecka.</bild>


I minispelens förlovade Nintendo-land2026-07-18 16:00
Ibland behöver vi skåda hela vägen tillbaka till Game boy advance för att förstå vår samtid. Häng med bland kända och okända minispel från förr.
Väderleken vänder – nu vankas spelhelg med gott samvete2026-07-17 14:00
Medeltid, kosmiska väsen och myggor väntar redaktionen. Men vad har du i görningen?
Quiz: Mörker, elände och familjeliv i A Void Hope2026-07-17 13:00
Hur bra koll har du på livet i den namnlösa staden?
RTS-spelet Game of Thrones: War for Westeros försenas2026-07-17 12:03
Vintern kommer ... lite senare än planerat.