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

James Gunn's Superman Casts Ma and Pa Kent2024-04-18 20:24
James Gunn finally reveals the casting for Superman's parents, Jonathan and Martha Kent.
Sydney Sweeney Responds to Producer Who Said She's 'Not Pretty' & 'Can't Act'2024-04-18 19:53
Producer Carol Baum, known for films like Father of the Bride, made the comments about Sydney Sweeney after a screening of Baum's film Dead Ringers.
Joseph Quinn Says The Fantastic Four Is 'Very Different' from the MCU2024-04-18 19:33
Quinn plays the Human Torch in The Fantastic Four and thinks that the MCU reboot will combat superhero fatigue.
Kingdom Come: Deliverance II utannonserat med läcker trailer2024-04-18 18:15

Som det bekräftades förra veckan skulle utvecklaren {Warhorse Studios} idag utannonsera sitt nästkommande spel, och vi spekulerade då i att det förmodligen handlade om {Kingdom Come: Deliverance II}. Och mycket riktigt, så blev det.

Den medeltida uppföljaren släpps under året till PC, Playstation 5 och Xbox Series S/X, och vill du veta mer om det tipsar vi om vår mastiga förtitt som du hittar här (japp, vi har fått kolla in det), men nedan kan vi även bjuda på utannonseringstrailern.

Den ger en komplex inblick i en riktigt tjusig som ser mycket mer omfattande ut, men också farligare och mer actionfylld ut än den som originalspelet bjöd på. Hur sugen är du själv på Kingdom Come: Deliverance II och vad tyckte du om originalet?

<video>

<bild></bild>


Todd Howard: "Väldigt bra" Starfield-uppdateringar väntar runt hörnet2024-04-18 16:34
Har inte glömt Starfield i Fallout-yran.
Little Empty Boxes Documentary Clip Breaks Hearts and Raises Awareness for Dementia2024-04-18 16:33
NY Times bestselling author Max Lugavere's film Little Empty Boxes follows his mother Kathy as she begins to decline into dementia.
Melissa Barrera Is ‘Here to Stay’ & ‘Proud’ of Finishing Abigail while Dealing with Scream Firing2024-04-18 16:30
Abigail's Melissa Barrera proclaims that she is "here to stay" despite her controversial dismissal from the Scream film series.
Fläskig samlarutgåva av World of Warcraft: The War Within utannonserad2024-04-18 15:24

{World of Warcraft}-serien har genomgående haft fina samlarutgåvor och den kommande expansionen The War Within blir inget annorlunda på den punkten. Nu har en både enorm och dyr Collector's Edition utannonserats för att fira att {World of Warcraft: The War Within} är den första i en serie av tre expansioner som avslutar de första 20 åren av spelserien.

Collector's Edition kostar hela €208,95 och innehåller ett gäng extra godsaker samt en boostad version av spelet. Kolla in allt extra nedan:


  • World Of Warcraft: The War Within Epic Edition Game Key

  • The War Within Hardcover Art Book

  • Gryphon Rider Statue

  • Collector's Pin featuring Anduin, Alleria, and Thrall

  • Epic Edition Game Content includes: Enhanced Level 70 Character Boost; 3 Days of Early Access, and 30-Days of Game Time; Algarian Stormrider Mount; Stormrider's Attire Transmog Set; Deepdweller's Earthen Hearthstone Effect, Squally, the Storm Hatchling Pet, and the Sandbox Storm Gryphon Toy; and 1000 Trader's Tender

  • Box measures approximately 27.2cm x 30.6cm x 7.4cm



Vi har fortfarande inget spikat lanseringsdatum för World of Warcraft: The War Within ännu, men Collector's Editions ska släppas tillsammans med spelet.

<bild>Blizzards onlinerollspel har fått sig ett uppsving på slutet.</bild>


No Rest for the Wicked släpps strax i early access2024-04-18 15:23
Vrålsnyggt med inspiration från Diablo och Dark Souls.
Supergiant visar upp Hades II-gameplay2024-04-18 15:10

{Hades II} släpps äntligen via Early Access i år, men innan vi får lägga vantarna på det har Supergiant nu visat upp lite gameplay, vilket ger oss en hel del information om vad vi kan förvänta oss.

Först och främst finns det en del saker vi förväntade oss men som hittills inte varit bekräftade. Hades II är en direkt uppföljare till det första spelet, men kräver tydligen inte att du känner till Hades historia. Zagreus ersätts här av den nya huvudpersonen Melinoë, som är den som beger sig ner i underjordens djup.

Huvudskurken i spelet är titanen Chronos som måste besegras för att Melinoë ska kunna rädda sin familj. Gamla gudar utlovas återvända, däribland Zeus och Poseidon, men det kommer också finnas nya gudar som hjälper dig på din väg, inte minst Hestia och Apollo samt många fler. Melinoës spelstil skiljer sig också från den Zagreus använde, där vi förmodar att det väntar andra mytiska vapen att använda.

Kolla in hela den tre timmar långa streamen nedan:

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

<bild>Kolla in uppföljaren till ett av 2020 års bästa spel.</bild>


Family Guy kommer inte sluta så länge folk tittar2024-04-18 14:39

{Family Guy} fortsätter vara relevant och ofta provocerande, och har nu körts i 25 års tid trots flera nedläggningar (även om det nu var länge sedan). Därför har många funderat på om det inte börjar bli dags att avrunda {Family Guy} på ett bra sätt. Men så lär det inte bli enligt skaparen Seth MacFarlane, som säger till Los Angeles Times att inga sådana planer ens har diskuterats:

"At this point, I don't see a good reason to stop. People still love it. It makes people happy and it funds some good causes. It's a lot of extraneous cash that you can donate to Rainforest Trust and you can still go out to dinner that night.

There was a time when I thought, it's time to wrap it up. At this point, we've reached escape velocity. I don't know that there's any reason to stop at this point unless people get sick of it. Unless the numbers show that people just are, "Eh, we don't care about 'Family Guy' anymore." But that hasn't happened yet."


Alex Borstein, som i serien gör rösten till Lois, förklarade sitt test för huruvida {Family Guy} fortfarande är relevant och sade:

"I feel like every time we have a table read or recording, I'm laughing. For me, that's my litmus test, if I'm still laughing at the scripts, if there's three out-loud laughs. Because we've all been reading and doing comedy for so long. There's not many guffaws left."

Hur tycker du {Family Guy} står sig efter alla dessa år?

<bild>En familj på väg mot Simpsons-nivåer.</bild>


Diskutera – De värsta logiska vurporna du (tyvärr) sprungit på i spel2024-04-18 14:00
Hål i berättelsen.
Brian Cox: Joaquin Phoenix var "fruktansvärd" som Napoleon2024-04-18 13:08

Medan många anser att Joaquin Phoenix är en av de bästa levande skådespelarna just nu, är det inte alla som delar den uppfattningen, och det verkar som Succession-stjärnan Brian Cox definitivt inte hör till den gruppen. Han är istället våldsamt kritisk.

I en livechatt (som transkriberats av The Standard) gick Cox till hård attack mot Phoenix insats i Napoleon:

"Terrible. It's terrible. A truly terrible performance by Joaquin Phoenix. It really is appalling. I don't know what he was thinking. I think it's totally his fault and I don't think Ridley Scott helps him. I would have played it a lot better than Joaquin Phoenix, I tell you that. You can say it's good drama. No - it's lies."

Skådespeleriet var inte det enda Cox hade problem med, för han gillar heller inte Phoenix namn:

"I think he's well named. Joaquin...whackeen... whacky. It's a sort of whacky performance."

När han var klar med Phoenix tog han sikte på så kallad method acting, Braveheart och amerikansk politik - som det anstår en 77-årig arg farbror.

<bild>Brian Cox avskyr Joaquin Phoenix.</bild>


World of Warcraft på konsol? Blizzard: "Ingenting är omöjligt"2024-04-18 12:56
Sägs vara en ständig fråga för Blizzard.