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

Vin Diesel Teases Fast 11 as "American Road Trip;' Shares First Concept Art2024-06-17 19:15
Vin Diesel took time on Father's Day to share concept art for Fast 11 while in Europe scouting locations for his next Riddick film.
Det är Nintendo Direct på tisdag – men handlar inte om "Switch 2"2024-06-17 18:45
Det snackas Switch-spel.
Amerikanska staten stämmer Adobe2024-06-17 18:03

En ojuste prenumerationsmodell som är omständlig att göra sig av med och dessutom belägger användaren att betala straffavgift vid tidigt avslut, ja det är bara några av grunderna till den stämning som amerikanska staten nu lämnat in mot Adobe.

I stämningsansökan skriver man hur Adobe aktivt valt att skada sina konsumenter genom ett lömskt avtal som kan leda till tusentals kronor i extra utgifter för den som inte är observant.

"Adobe hides the terms of its annual, paid monthly plan in the fine print and behind optional textboxes and hyperlinks. In doing so, the company fails to properly disclose the early termination fee incurred upon cancellation that can amount to hundreds of dollars"


Vidare så riktas även kritik direkt mot flera högt uppsatta inom företaget som pekas ut som den drivande kraften bakom dessa fula tjuvknep. Samuel Levine från Federal Trade Commission beskriver situationen enligt följande:

"Adobe trapped customers into year-long subscriptions through hidden early termination fees and numerous cancellation hurdles. Americans are tired of companies hiding the ball during subscription signup and then putting up roadblocks when they try to cancel"


Den amerikanska staten har haft en pågående utredning riktad specifikt mot Adobe sedan förra året och bolaget har även hamnat i blåsväder inom EU på grund av deras affärsmodell.

Använder du Adobes portfölj av produkter och vad är dina åsikter om deras prenumerationsmodell?

<bild>Det börjar bli hett om öronen för Adobe och fula knep.</bild>

Källan


Napoleon Dynamite Cast Hypothesize Where Their Characters Are Today2024-06-17 17:26
Napoleon's paying child support, Uncle Rico owns a backyard wrestling federation, and Pedro still has political aspirations.
Nya Fallout kommer inte stressas fram2024-06-17 16:24
Todd Howard kommer ta tid på sig.
Du kan spela Starfield i 120 bilder per sekund med Xbox Series S2024-06-17 16:23

Som du kanske vet har Bethesda gjort det möjligt att lägga till moddar i Xbox-versionen av {Starfield} tack vare Creation Club-verktyget. Det finns redan flera alternativ att välja på och folk är i full färd med att ta fram nya, med ganska häpnadsväckande resultat.

Ett sådant exempel bjuder Fuzion Xbox Testing på. Starfield fick en del kritik inför premiären sedan det bekräftats att det körs i 30 bilder per sekund. Detta ökades visserligen nyligen till det dubbla, men Xbox Series S har inga sådana möjligheter. Men det är här moddarna kommer in i bilden.

Nu att det faktiskt finns ett sätt att köra Starfield till Xbox Series S i upp till 120 bilder per sekund. Det handlar dock tekniskt sett inte om en mod som förbättrar, tvärtom. Som Pure Xbox kan rapportera ska du istället installera "Uncap FPS for Series S", "Performance Tweaks (Series S)", "Performance Shadows (Series S)", "Remove Grass", "Crowd Reducer" samt "No God Rays" - vars namn ganska väl beskriver vad de gör.

Och när du väl gjort det ökar flytet i spelet ordentligt. Det når inte 120 bilder per sekund särskilt ofta, men ligger ändå generellt väldigt högt, och visar att den som har Xbox Series S och prioriterar bilduppdatering ändå kan förbättra detta om de är villiga att offra grafiskt lullull.

<social>https://x.com/Pirat_Nation/status/1802359132596441403</social>

<bild>Har du provat moddar till konsolversionen av Starfield?</bild>


Nathan Lane Reflects on Coming Out, Praises Robin Williams for Protecting Him: 'Such a Beautiful, Sensitive Soul'2024-06-17 15:33
The Birdcage star Nathan Lane reveals the support and protection that the late, great Robin Williams offered him.
Dana White Says the Rock Could Earn an Oscar Nod for the Smashing Machine2024-06-17 15:31
As The Smashing Machine continues to build anticipation, Dwayne Johnson also recently inked a first-look deal with Disney.
Var det du som vann en PC i vår stora NZXT x Fallout-tävling?2024-06-17 15:20

Som många av er kanske noterat tog det lite längre tid att presentera en vinnare i vår NZXT x Fallout-tävling som startade förra månaden. Vi tillbringade lite mer tid i maskinrummet än planerat, men nu är en lycklig gamer utsedd.

Vinnaren är den svenske användaren (tävlingen gällde hela Norden) Albin Laurin, och vi gratulerar naturligtvis till en osedvanligt tjusig gamer-PC.

Tack alla som var med och tävlade, förhoppningsvis är det din tur nästa gång!

<bild>Tack, ja tack!</bild>


Matthew Broderick Shares Sad Reflection on Jim Carrey's Panned Performance in The Cable Guy2024-06-17 15:15
The Cable Guy may have become a cult classic comedy, but star Matthew Broderick sympathises with Jim Carrey for being the lead star.
Dragon Age: The Veilguard äger rum 10 år efter Inquisition2024-06-17 14:58
Inga onlinekrav, inga mouts. Mer om nya Dragon Age avslöjat!
Nintendo visar framtiden för Switch imorgon klockan 16:002024-06-17 14:41

Ryktena om när Nintendo skulle utannonsera sin sommarpresentation har gått varma i flera veckor nu. Så mycket att vi faktiskt kostade på oss att göra några förutsägelser om vad som kan dyka upp i nästa Direct. Och snart har vi svaret.

Nintendo har precis meddelat att imorgon, den 18 juni, ska en ny Nintendo Direct köras klockan 16:00, där de ska bjuda på utannonseringar och uppdateringar om kommande spel till Switch för de kommande månaderna. Det blir en presentation på cirka 40 minuter, så det verkar som att de har mycket att visa.

Vi påminner om att Nintendo tidigare sagt att de inte ska prata om Switch 2, vilket kan vara bra att minnas så du inte blir besviken i onödan.

<social>https://x.com/NintendoAmerica/status/1802702745276662114</social>

<bild>Äntligen är det dags...</bild>


Dessa är vanligaste rävnamnen i Sea of Thieves2024-06-17 14:36

I fem år har vi kunnat ha husdjur i {Sea of Thieves}, och kontinuerligt har fler och fler sorter lagts till, däribland ugglor och rävar. Nu har Rare avslöjat vad digitala sjörövare döper sina rävar till genom att presentera de tio vanligaste namnen.

De nio första namnen känns alla hyggligt logiska, kanske rent av lite förutsägbara, men vi är mer överraskade av namn nummer tio - Todd. Någon bra förklaring till detta har vi inte, mer än möjligen Disney-klassikern The Fox and the Hound (Micke och Molle), men den räven heter som du kanske minns Tod.

Vad har du för favorithusdjur i Sea of Thieves och vad heter krabaten?

<social>https://www.instagram.com/seaofthievesgame/p/C8OuEPXto3-/</social>

<bild>Är det du, Todd?</bild>


Nörda ner dig i Doom: The Dark Ages-grafiken2024-06-17 14:01
Digital Foundry går på djupet i Id Softwares nästa blodbad.