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

Marvel-serien Eyes of Wakanda släpps den 27 augusti2025-07-02 12:11

Disney och {Marvel Studios} har på senare tid arbetat mycket med filmskaparen Ryan Coogler. Härom året kom {Black Panther: Wakanda Forever}, {Ironheart} avslutas idag på Disney+, {Black Panther 3} är på gång, och snart kan vi förvänta oss mer från {Wakanda} i form av en animerad serie.

Coogler har antingen regisserat eller varit exekutiv producent för samtliga av dessa projekt, och samma gäller för {Eyes of Wakanda}, som utökar {Marvel Animation}s utbud med en fyrdelad berättelse som utforskar {Wakanda}-arvet över flera århundraden. Serien ska tydligen vara en antologisk berättelse, som skildrar olika perioder och karaktärer i den fiktiva afrikanska nationen, med premiär på Disney+ den 27 augusti.

Nu har vi dessutom fått en tidig teaser från serien att titta på i och med ett 30 sekunder långt klipp som ger en antydan om animationsstilen och vad som väntar. Kolla in nedan.

<video>


Squid Game: Säsong 3 är redan en av Netflix största serier någonsin2025-07-02 11:47

Med tanke på att Squid Game är Netflix mest framgångsrika serie och toppar både de engelska och icke-engelska topplistorna med 265 miljoner visningar (marginellt mer än Wednesday på cirka 252 miljoner) - är det kanske inte så förvånande att den koreanska seriens tredje säsong också går starkt.

Faktum är att data från Netflix nu visar att Squid Game: Säsong 3 efter bara några dagar är en av streaming-tjänstens mest framgångsrika någonsin. Hittills har den nått 60,1 miljoner visningar och 368 miljoner tittade timmar, vilket räcker för att göra den till det nionde största icke-engelska projektet genom tiderna. Den är dessutom cirka 40 miljoner visningar från att klättra upp på tredje plats, efter säsong 1 och 2.

När det gäller hur den står sig bland alla serier så kan den om den passerar 100 miljoner visningar, något som verkar troligt då den nådde 60 miljoner på ungefär fem dagar, bli den åttonde största engelskspråkiga serien någonsin, samt den tredje största icke-engelska serien, vilket bekräftar att publiken verkligen älskar brutala koreanska tävlingsprogram.

Om du inte redan gjort läst den så hittar du vår recension av Squid Game: Säsong 3 här.

<bild>Fortfarande hutlöst populärt.</bild>


Du kan nu lyssna på soundtracket New Super Mario Bros U Deluxe med Nintendo Music2025-07-02 10:34

Ända sedan Nintendo lanserat sin app Nintendo Music har vi i princip varje vecka kunnat berätta om nytillskott. Nu är det dags igen, och eftersom det handlar om ett Mario-äventyr antar vi att många är nyfikna.

Nintendo meddelar nämligen att soundtracket till {New Super Mario Bros U Deluxe} lagts till i musiktjänsten, vilket betyder att du nu kan lyssna till dess 90 låtar - med en speltid på dryga två timmar. Även om det inte betraktas som något av de bättre Mario-soundtracken, så finns en hel del godbitar att njuta av.

Deluxe-utgåvan släpptes 2019 och är en uppdaterad version av Wii U-originalet från 2012 som bland annat ger möjlighet att spela som Toadette och Nabbit. Om musiken gör dig sugen på att spela det igen så fungerar det även till Switch 2 tack vare bakåtkompatibiliteten

<social>https://bsky.app/profile/nintendousa.bsky.social/post/3lsuthzqkpk2c</social>

<bild>Bara att poppa om du prenumererar på Switch Online.</bild>


Sega visar lite av godsakerna du kan köpa i deras nya flaggskeppsbutik2025-07-02 10:07

För dryga veckan sedan kunde vi berätta att Sega är i full färd med att öppna vad som beskrivs som en flaggskeppsbutik i Tokyo. Den ska ligga i köpcentret Shibuya Parco (där vi även hittar Capcom Store Tokyo, Jump Shop, Nintendo Tokyo och Pokemon Centre Shibuya), och nu har de sjösatt en hemsida som låter oss kolla in en del av varorna som går att fynda.

Men... innan du gör det, så låt oss bara varna dig som kan din Sega-historia om att det kan bli dyrt. Här finns nämligen ett rejält urval merchandise från bland annat Like a Dragon, Persona, Puyo Puyo, Sega själva - och såklart en hel del med den där lasersnabbe igelkotten.

Kort sagt, kika på egen risk om du tror att du kan motstå suget att panikboka ett flyg till Tokyo för att strössla yen omkring dig på Shibuya Parco.

<bild>Ja... Vi behöver en av varje. Åtminstone.</bild>


Australien återkallar Kanye Wests visum på grund av den kontroversiella låten "Heil Hitler"2025-07-02 10:05

De senaste nyheterna om Australien. Den amerikanske rapparen släppte en låt som hyllade Adolf Hitler i maj i år. Nu har Australien återkallat Kanye Wests visum efter att han släppt en låt som stöder nazistisk ideologi, enligt landets inrikesminister.

"Det var en lägre nivå (visum) och tjänstemännen tittade fortfarande på lagen och sa att du kommer att ha en sång och främja den sortens nazism, vi behöver inte det i Australien", sa inrikesminister Tony Burke till det nationella tv-bolaget ABC på onsdagen.

"Vi har redan tillräckligt med problem i det här landet utan att medvetet importera trångsynthet", tillade han. Trots tidigare provocerande kommentarer från artisten vidtog tjänstemän åtgärder som svar på hans musik och betonade att Australien inte kommer att tolerera innehåll som främjar hat.

<bild>Washington, DC USA - 11 oktober 2018: Jim Brown tittar på när Kanye West talar när han träffar USA:s president Donald J. Trump i Vita husets ovala kontor. Upphovsman: Ron Sachs - CNP</bild>


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!
F.d. Blizzard-chef: "Tufft att se Xbox förvirrat över vem man är och vad man borde vara"2025-07-01 15:49
Mike Ybarra tycker Xbox ska satsa på spel
FBC: Firebreak2025-07-01 14:00
Kortlivad och konstig co-op. Remedys nya känns inte särskilt mycket Remedy alls.