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

Game of Thrones' Kit Harington Shares Candid View of Hero Roles; 'They're F*cking Hard to Play'2024-04-20 12:10
Kit Harington became a huge star on the back of his role as Jon Snow in Game of Thrones, but he is ready to play the villain in the future.
Prison Architect 2 försenas ytterligare och kommer nu släppas i september2024-04-20 12:00
Fängelset öppnar efter sommaren.
Ny Baldur's Gate III-patch lägger till fler slut på äventyret2024-04-20 11:06

Baldur's Gate Ill-patcharna lägger alltid till nya viktiga saker som spelarna kan fördjupa sig i. Oavsett om det är nya romantiska interaktioner med ens partner eller en hel epilog som utspelar sig efter grundspelet, har Larian ofta gett oss ännu en anledning att ladda en sparfil på nytt.

Snart är det dags för Patch 7 har nu presenterats i ett nytt community-inlägg, där Larian förklarar att nya slut kommer att läggas till. Som vanligt kan vi även förvänta oss massor av buggfixar. Den här gången är det så mycket som åtgärdas att en betaversion av uppdateringen släpps under de kommande veckorna för att PC-spelare ska kunna testa patchen ordentligt.

Om du redan har spelat hundratals timmar och vill kunna förändra något själv, lär du även glädjas över att moddningsverktyg också implementeras i spelet i och med Patch 7, något vi verkligen ser fram emot. Saker som crossplay och fotoläge är på gång, men detta kommer tyvärr inte erbjudas i Patch 7.

<bild>Larian fortsätter förbättra 2023 års bästa spel.</bild>


Nya livstecken från The Wolf Among Us 22024-04-20 11:02

Tio år efter att den hyllade deckaren The Wolf Among Us intog våra vardagsrum har vi fortfarande inte fått sätta tänderna i uppföljaren som har varit utannonserad i ett flertal år vid det här laget. Efter en del osäkerheter om huruvida The Wolf Among Us 2 fortfarande ens var på väg efter att studion Telltale både gått i graven och återuppstått, fick vi tidigare i år besked om att spelet lever i allra högsta grad och fortfarande är något att se fram emot.

Nu har ytterligare livstecken visats upp i och med ett inlägg på X (tidigare Twitter) från Geoff Keighley, där fyra nya bilder från titeln finns att beskåda. Det är inte mycket men det är åtminstone en liten indikation på att utvecklingen av The Wolf Among Us 2 fortfarande går framåt. Än så länge har vi ingen aning om när den efterlängtade uppföljaren kan komma att släppas på marknaden men vi hoppas, precis som du, att det inte dröjer alltför lång tid innan dess.

Väntar du på The Wolf Among Us 2?
<social>https://twitter.com/geoffkeighley/status/1781096089136795906</social>
<bild></bild>
<bild></bild>


Little Big Planet 3-servrarna har plötsligt stängts ner2024-04-20 09:46

Från till synes ingenstans, utan någon form av heads up, har Sony stängt ner servrarna till det knappt tio år gamla plattformsspelet Little Big Planet 3 signerat Sumo Digital. Temporära nedstängningar har skett tidigare, senast bara i januari, men denna gång ser det betydligt mörkare ut, och ni som inte hunnit spara era kreationer på lokala hårddiskar får nog se era skapelser - tillsammans med miljontals andra spelarskapade banor - som förlorade.

Såhär skriver Sony på X/Twitter:
Due to ongoing technical issues which resulted in the LittleBigPlanet 3 servers for PS4 being taken offline temporarily in January 2024, the decision has been made to keep the servers offline indefinitely. All online services including access to other players' creations for LittleBigPlanet 3 are no longer available.

User generated content (UGC) stored locally on your PS4 will remain available. Any new UGC you create can be played on your PS4 but not shared. Offline features such as the campaign will remain playable.

Behandlingen av "online only"-titlar och andra spel som görs plötsligt obrukbara efter att utvecklarna/utgivarna drar ur pluggen har varit något av en het potatis på senare tid, inte minst med Ubisofts aggressiva behandling av the Crew från härom veckan i färskt minne.

Vad tycker du om dessa plötsliga nedstängningar?

<bild>All those moments will be lost in time, like tears in rain.</bild>


Valheims nästa expansion kommer att visas upp i en maffig gameplay-trailer om två dagar2024-04-20 09:23

Snart är det äntligen dags kära vikingar, den enormt efterlängtade nästa stora expansionen av spelet - Ashlands, verkar vara nära förestående. Och utlovar så klart mer av allt det vi kommit att älska med det svenska vikingaspelet.

Den stora gameplay-trailer vi väntat på har fått premiärdatum spikat till den 22:a april klockan 13:00, vilket i sin tur innebär att expansionen högst sannolikt bara är en eller två månader bort från release. Döma av hur spelets utvecklare Iron Gate tidigare gjort.

Ser ni fram emot Ashlands lika mycket som oss?

<social>https://www.youtube.com/watch?v=XSVbXgBJIuI</social>


Team Fortress 2 får efterlängtad prestandauppdatering2024-04-20 09:14

Att den sjutton år gamla (!) långköraren Team Fortress 2 fortfarande uppdateras är inte så konstigt i sig. Valves färgglada och för sin tid banbrytande hjälteskjutare, vilken kan sägas banade väg för Overwatch och liknande titlar, nådde faktiskt sin spelartopp bara förra året. Med den senaste uppdateringen finns det inget som säger att populariteten kommer minska.

Från och med i förrgår uppdaterade Valve spelet till 64 bit för Windows- och Linux-användare, något som fått väldigt positiv feedback av bland annat användare på Reddit som menar att prestandan i vissa fall ökat med så mycket som 20%. Kolla in spelets officiella sida här för mer detaljer rörande uppdateringarna.

Tyvärr kvarstår problemet med de idoga bottarna, men nu kan du åtminstone skjuta dem i en högre bilduppdateringsfrekvens. Alltid något?

<bild>Kör du Team Fortress 2 fortfarande, såhär 17 år senare?</bild>


FZ har kraftfull speldator från Webhallen – så här presterar den2024-04-20 08:00
Vi benchmarkar Webhallen Config Ultra med RTX 4090-grafik.
Playstation-exklusiva Kena: Bridge of Spirits verka vara på väg till Xbox2024-04-20 07:00
Myspys för Xbox-ägarna.
Henry Cavill and Margot Robbie Become a James Bond Dream Team in New Fan Trailer2024-04-20 00:19
Fan-casting of Henry Cavill as James Bond is nothing new, so a fan-made trailer that sees him don the super spy's suit was always going to be a hit.
Seth MacFarlane and Martin Scorsese Become Unlikely Collaborators on Classic Animation Restoration Project2024-04-19 23:44
As lovers of "golden age" animated shorts, MacFarlane and Scorsese have become unlikely allies on a restoration project.
Sci-Fi Thriller Project Hail Mary with Ryan Gosling Gets a Release Date2024-04-19 21:31
Ryan Gosling is attached to star in an adaptation of the new novel from The Martian writer Andy Weir.
James Gunn Shares Superman Reboot Set Photo in Celebration of Superman Day2024-04-19 20:36
Superman reboot's James Gunn, David Corenswet, & Rachel Brosnahan celebrate Superman Day the proper way.
The Wolf Among Us 2 får – äntligen! – nya bilder2024-04-19 18:09
Ropa varg?
FZ-läsarna: New Vegas bästa Fallout-spelet, framför tvåan2024-04-19 16:27
Första Bethesda-utvecklade spelet återfinns först på tredjeplatsen.