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

Tyskland har för avsikt att köpa ytterligare 15 F-35 stridsflygplan2025-07-11 07:32

Den senaste nya sonen Tyskland. Tyskland uppges förbereda sig för att skaffa fler F-35 stridsflygplan från USA, vilket ökar sin planerade flotta avsevärt, rapporterade Politico på fredagen med hänvisning till flera personer som är bekanta med saken.

"Den tyska regeringen planerar att köpa ytterligare 15 F-35 stridsflygplan, berättade flera personer som är bekanta med saken för POLITICO, vilket ökar den planerade flottan av det amerikansktillverkade jetplanet från 35 till 50", enligt en ny artikel publicerad av POLITICO (här).

Beslutet, om det bekräftas, skulle signalera ett skifte i Berlins försvarsstrategi eftersom meningsskiljaktigheter med Frankrike fortsätter att fördunkla framtiden för det gemensamma FCAS-programmet. Den nya planen ligger också i linje med Natos bredare ansträngningar för att höja försvarsåtagandena.

<bild>Jaktplan, Flygplan, Militär, Tyskland, F35</bild>


Finland informerar FN om att lämna avtalet om förbud mot landminor2025-07-11 07:23

De senaste nyheterna om Finland. Det nordiska landet har officiellt meddelat FN sitt beslut att dra sig ur det internationella avtalet om förbud mot antipersonella minor, med hänvisning till växande säkerhetshot i regionen, meddelade landets utrikesdepartement sent på torsdagen.

"Den 10 juli 2025 presenterade Finland ett instrument för tillbakadragande från Ottawakonventionen om antipersonella minor. Återkallelsen ska träda i kraft i januari 2026. Finland kommer att fortsätta att stödja konventionens humanitära mål."

Utträdet kommer att träda i kraft i början av 2026 och är i linje med de senaste förändringarna från grannländer som också omvärderar sina strategier. Detta återspeglar en bredare trend bland östeuropeiska länder som omprövar vapenrestriktionerna på grund av oro över den regionala stabiliteten.

<social>https://x.com/Ulkoministerio/status/1943364226875007436</social>

<bild>"Varningsskylt som anger landminor i ett skogsområde. Framhäver fara och medvetenhet. Perfekt för militära, farliga eller miljömedvetna ämnen."</bild>


The Elder Scrolls IV: Oblivion Remastered uppdaterat med bland annat fler svårighetsgrader2025-07-11 06:14

Nu har patch 1.2 släppts till Steam-versionen av {The Elder Scrolls IV: Oblivion Remastered} och förutom buggfixar vankas nya svårighetsgrader. Du kan nu justera både hur mycket skada du själv gör och hur mycket fienderna gör genom att välja mellan nivåerna Novice, Apprentice, Adept, Journeyman, Expert och Master. Journeyman fungerar som ett mellanting mellan Adept och Expert, för dig som vill finjustera utmaningen ännu mer.

Dessutom har flera prestandaproblem åtgärdats, bland annat i områden som Deepscorn Hollow, Black Rock Caverns och Bravil Castle. Även små men störiga buggar, som att Argonian- och Khajiit-svansar gick igenom rustningar samt märkliga fel i karaktärers längdskalning, har nu fixats.

Vill du testa uppdateringen redan nu via Steam innan den släppts publikt? Gå till Oblivion Remastered i ditt spelbibliotek, välj Egenskaper, klicka på Betas, och välj den beta som heter "/[beta] for this patch" så laddas den nya versionen ner.

The Elder Scrolls IV: Oblivion Remastered finns ute nu till PC, PS5 och Xbox Series S/X (samt ingår med Game Pass) - och uppdateringen kommer givetvis även till de två sistnämnda inom kort.

<bild>The Elder Scrolls IV: Oblivion Remastered är nu ännu lite bättre.</bild>


Fallout 76 utökas med innehåll kopplat till TV-serien2025-07-11 05:45

Medan rykten om en remaster av {Fallout 3}, {Fallout 5} och andra projekt cirkulerar för fullt just nu, fortsätter en annan del av Fallout-världen leverera storverk, nämligen {Fallout 76}. Spelet har gått från bespottat vid lanseringen till en mycket underhållande live service-produkt, och Bethesda fortsätter bygga vidare på det.

Nu avslöjar spelets creative director Jon Rush att teamet planerar att knyta samman Fallout 76 med Amazons hyllade TV-serie. I en intervju hos Variety berättar han:

"Lining things up with the seasonal releases of the show, it's stuff that we talk about all the time, and we do have plans for things here and there. I'm not going to go into detail on any of those now, but the two teams do talk to one another."

Exakt vad detta innebär är fortfarande höljt i dunkel, men det är tydligt att Bethesda vill surfa vidare på TV-seriens enorma genomslag. Den andra säsongen av Fallout på Amazon Prime väntas ha premiär sent i år eller tidigt 2026, varpå vi alltså kan se fram emot nyheter även till Fallout 76.

<bild></bild>


Storbritannien och Frankrike når nytt avtal om migration och stöd till Ukraina2025-07-11 05:36

De senaste nyheterna om Storbritannien och Frankrike. På torsdagen avslutade den brittiske premiärministern Keir Starmer och Frankrikes president Emmanuel Macron sina statsmöten i London med ett nytt avtal om migrationskontroller och planering av Ukraina efter kriget.

"Jag är glad över att idag kunna tillkännage vårt avtal om ett banbrytande pilotprojekt för returer. För första gången kommer migranter som anländer i små båtar att frihetsberövas och skickas tillbaka till Frankrike på kort tid. Detta kommer att visa andra som försöker göra samma resa att det kommer att vara förgäves."

"Att stödja Ukraina är inte bara rätt sak att göra, det är avgörande för att skapa säkerhet på hemmaplan. Som nära partner och Nato-allierade har Storbritannien och Frankrike en lång historia av försvarssamarbete och dagens avtal tar vårt partnerskap till nästa nivå.

<social>https://x.com/Keir_Starmer/status/1942962317874037184</social>

<social>https://x.com/Keir_Starmer/status/1943212071962763712</social>

<social>https://x.com/Keir_Starmer/status/1943331629730271291</social>

<social>https://x.com/Keir_Starmer/status/1943346454430421365</social>

<social>https://x.com/Keir_Starmer/status/1943374962628149398</social>

<social>https://x.com/Keir_Starmer/status/1943383383599358324</social>

<social>https://x.com/EmmanuelMacron/status/1943031927809728809</social>

<social>https://x.com/EmmanuelMacron/status/1943048083920839145</social>

<social>https://x.com/EmmanuelMacron/status/1943203088392753480</social>

<social>https://x.com/EmmanuelMacron/status/1943391080981921936</social>

<bild>London, Storbritannien - 9 juli 2025: Keir Starmer, Storbritanniens premiärminister och hans fru Victoria Starmer, hälsar på Emmanuel Macron, Frankrikes president och Brigitte Macron, Frankrikes första dam</bild>


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?
Stalker 2 till PS5 senare i år2025-07-10 11:26
Kommer trimmas till PS5 Pro.
Quiz – Känner du igen de jättegamla spelen?2025-07-10 10:00
Veckans quiz är mer retro än någonsin.