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

Dragon Quest III HD-2D Remake är nu helt färdigutvecklat2024-09-16 04:25

Square Enix meddelar via Instagram att {Dragon Quest III HD-2D Remake} nu är klart för lansering till PC, Playstation, Switch och Xbox den 14 november. I inlägget får vi se både Dragon Quest-fadern Yuji Horii samt Dragon Quest III HD-2D Remake-producenten Masaaki Hayasaka vara till synes mycket nöjda över att vara klara med remaken.

Dragon Quest III HD-2D Remake utannonserades för drygt tre år sedan och under en lång period har det varit tyst, fram till juni i år då spelet dök upp igen och fick ett releasedatum den 14 november.

Dragon Quest III har tidigare släppts i många versioner till flera olika plattformar, men originalet från 1988 kom aldrig till Europa. Sedan lanseringen av det första spelet i Dragon Quest-serien för 38 år sedan (1986) har försäljningen av Dragon Quest-spel nått 82 miljoner exemplar enligt Square Enix.


<social>https://www.instagram.com/p/C_4cD4KRs9N/</social>

<bild>2024 bara fortsätter leverera godsaker för fans av japanska rollspel.</bild>


Embracer väljer att behålla 4A Games och Zen Studios2024-09-16 03:37
Den postapokalyptiska tunnelbanan och flippern stannar hos jätten.
Diablo IV sägs ha dragit in 1,5 miljard på mikrotransaktioner2024-09-16 03:34
Och över tio miljarder kronor allt som allt.
Hoppet lever att Kingdom Come: Deliverance II till konsol ska kunna köras i 60 bilder per sekund2024-09-16 03:22

Utvecklaren Warhorse Studios kritiserades för att endast erbjuda 30 bilder per sekund i det ursprungliga {Kingdom Come: Deliverance} och aldrig uppdatera det till en högre bildhastighet. Kritiken blev dock ännu värre när de meddelade att den kommande uppföljaren förmodligen också bara kommer att köras med 30 bilder per sekund.

Men det kan vara på väg att ändras. I en intervju hos Wccftech säger producenten Martin Klima att de fortfarande håller på optimera spelet och att en högre bildhastighet när det väl lanseras till konsolerna inte är uteslutet:

"Kingdom Come Deliverance 2 is not finished yet, so we're still working on it, but 60FPS is not out of reach for us."

Det låter ganska optimistiskt, eller vad säger ni?

<video>

<bild>Premiär till PC, Playstation och Xbox i februari.</bild>


Kevin Smith Will Make Mallrats 2 Even if He Has to Finance It2024-09-15 22:49
Kevin Smith has shared the latest status of his long-delayed Mallrats sequel.
New Details on Moana 2's Villain Revealed2024-09-15 21:49
The latest news about the sequel proves danger is lurking around the corner.
Dragon Age: The Veilguard-världarna uppvisade i flera nya videos2024-09-15 21:46

{Dragon Age: The Veilguard} är äntligen nära premiären efter många års utveckling och en hel del intern turbulens som skakat om fansens förtroende för Bioware som studio (minst minst {Mass Effect: Andromeda} och {Anthem}).

Huruvida de kan återskapa magin återstår att se, men de har nu släppt en serie trailers som visar en så kallad "flyover" av de större områdena vi kommer få utforska, nämligen Arlathan Forest, Hossberg Wetlands, Minrathous, Rivain och Treviso - och visst känns det väl som klassiskt Bioware-mys?

Du kan titta på dessa videor nedan för att få en bra uppfattning om storleken på spelvärlden.

<video>

<video>

<video>

<video>

<video>

<bild>Premiär den 31 oktober.</bild>


Civil War Is Now Available To Stream On Max2024-09-15 21:15
A24's most expensive movie to date is a dystopian thriller has changed the game for war movies.
Box Office Round-Up September 15: Beetlejuice Beetlejuice Repeats as No. 1 Movie2024-09-15 20:47
Tim Burtons long-awaited sequel continues to scare up plenty of business in its second weekend.
Rebel Ridge Loses Netflix #1 to Uglies2024-09-15 20:29
Netflix's acclaimed action movie has lost its position at the top of the global movie chart to panned sci-fi movie Uglies
Saber Interactive kommer att betala av alla sina skulder till Embracer Studios2024-09-15 16:15

Aktiebolagen Aleph Capital Partners och Crestview Partners har investerat så pass mycket pengar att skaparna bakom Space Marine II nu kan betala sina skulder till Embracer Studios. Så här sa Embracer Studios chefen Lars Wingefors:

I would also like to take this opportunity to thank Matthew Karch for his contributions over the years, and at the same time congratulate the Saber team on the successful release of the iconic Warhammer 40,000: Space Marine 2, that will make a great start in their new structure

Notan landade på ungefär två miljarder svenska kronor. Och återbetalningar kommer att göras under 2024 och 2025. Detta har gjort det möjligt för utvecklarna att har skaffa sig mer makt över vad de skapar framöver än tidigare. Däremot kommer aktiebolagen som investerat pengarna att ha mer inflytande. De räknar också med utdelningar och att värdet av aktierna ökar. Om det skapar problem för Saber Interactive i framtiden återstår att se. Vad tyckte du om Space Marine II?

<bild>Space Marine II har varit en stor framgång för Saber Interactive.</bild>


Röstskådespelaren Peter Renaday har avlidit2024-09-15 16:08

Peter Renaday som bland annat är känd för sin insats som Duncan i Dragon Age: Origins och Teenage Mutant Ninja Turtles har avlidit 89 år gammal i sitt hem i Burbank, Kalifornien. Ingen officiell dödsorsak har meddelats men med tanke på hans ålder så rör det sig förmodligen om naturliga orsaker.

Bland de som lämnat sina hyllningar och kondoleanser finns förstås Bioware som givetvis minns hans insats som the Grey warden Duncan med värme. Bland andra roller Renaday gjort kan nämnas Adam Fenix i Gears of War 3, Al-Mualim i Assassins Creed och M i From Russia with Love.

<bild>Peter Renaday spelade bland annat Duncan i Dragon Age: Origins.</bild>

<social>https://x.com/bioware/status/1834345697555960089</social>


Rykte: Assassin’s Creed Syndicate får en current gen-uppgradering2024-09-15 14:00
Syskonen Frye kanske får hoppa runt i 60 FPS.
Watch Dogs-filmen har filmats färdigt2024-09-15 09:47
Det tog ”bara” åtta år.
Kemiska stridsmedel läggs till i Helldivers 22024-09-15 06:00
Nu blir det gasigt värre!