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

HBO bekräftar att den andra säsongen av The Last of Us har premiär 20252023-12-09 13:00
Den som väntar på något gott...
Suicide Squad: Kill the Justice League uppvisat med ny trailer2023-12-09 12:35

Istället för att fortsätta göra Batman-äventyr har Rocksteady under många år filat på live service-kalaset {Suicide Squad: Kill the Justice League}. Här ligger fokus på co-op, Battle Pass-försäljning, kosmetiska mikrotransaktioner och snabbt gameplay. Rocksteady vill dock verkligen att du ska veta att det finns en ganska traditionell kampanj inbakat också.

Just detta ligger i fokus för den senaste trailern som du hittar nedan. Spelet har premiär den 2 februari till PC, Playstation 5 och Xbox Series S/X.
<video><bild>Istället för ett fjärde Batman: Arkham-spel får vi detta.</bild>


Skådespelaren Ryan O'Neal har gått bort2023-12-09 12:00

Den amerikanska skådespelaren Ryan O'Neal har avlidit, 82 år gammal. Han har medverkat i många filmer genom sin långa karriär men är mest känd för sin roll i filmen Love Story från 1970, en roll han även blev Oscarsnominerad för. Filmen drog in över 106 miljoner dollar på bio och blev sjufaldigt Oscarsnominerad. Han hade även huvudrollen i Stanley Kubricks film Barry Lyndon. Dödsorsaken är inte känd men han har genom åren kämpat emot både leukemi och avancerad prostatacancer.
<bild>Ryan och hans motspelerska Ali MacGraw i filmen Love Story</bild>


Bethesda väljer att tiga på frågan om Blade-spelet är exklusivt för Xbox2023-12-09 10:00
Tystnad kring vampyr-exklusivitet.
Kolla in denna pyttelilla Playstation 52023-12-09 09:51

Sony har nu lanserat sin slimmade version av Playstation 5, vilken är 30% mindre än originalet. Men eftersom Playstation 5 är den största konsolen som någonsin tillverkats, är även 30% mindre fortfarande en ganska stadig bit. Och det är här Youtube-kanalen Not From Concentrate kommer in i bilden.

De har nu gjort en pytteliten Playstation 5, ungefär i samma storlek som en normal router. De delar även videon om hur detta gjordes, och låter oss få en bättre titt på enheten. Du kan kolla in nedan för att se hur den ser ut.

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

Vad tycker du om storleken och designen på denna mikroversion av Playstation 5?

<bild>Bild från Not From Concentrate</bild>


Like a Dragon: Infinite Wealth uppvisat med ny storytrailer2023-12-09 06:55

Den tidigare huvudrollsinnehavaren Kazuma Kiryu har ersatts av den underbara knäppgöken Ichiban Kasuga i Like a Dragon-serien, så vad ska Kiryu göra härnäst - och kommer han ens vara en del av det kommande {Like a Dragon: Infinite Wealth} som lanseras den 26 januari?

Just detta är fokus i en ny story-trailer från spelet, där Kiryu träffar gamla vänner och pratar om vad han ska göra i framtiden. Kolla in för att se vad som finns på den tidigare protagonistens bucket list.

<video><bild>Like a Dragon: Infinite Wealth släpps till PC, Playstation och Xbox.</bild>


Sean Gunn Set to Take Over Pedro Pascal's Wonder Woman Villain Role in James Gunn's DCU2023-12-09 00:49
Sean Gunn is reportedly set to take on another role in the upcoming DCU franchise, as a long-standing Wonder Woman villain.
Monarch’s Wyatt Russell Says Remaking Dad Kurt Russell’s Films Would Be a Bad Idea2023-12-08 20:45
Wyatt Russell thinks remaking any of his father Kurt Russell's fan favorite films would be a bad idea.
Robert Pattinson Was ‘Giddy With Excitement’ to Star in Studio Ghibli’s The Boy and the Heron2023-12-08 20:13
Robert Pattinson provides his voice talents in Studio Ghibli's The Boy and the Heron, and he was "giddy with excitement" to do so.
Godzilla Minus One är den mest framgångsrika japanska live-action filmen någonsin i USA2023-12-08 20:00

Toho och deras överdimensionerade skräcködla fortsätter att göra rent hus på biograferna, och både kritiker likväl som biobesökare verkar inte kunna få nog av Takashi Yamazakis nyklassiska tolkning av det ikoniska monstret. Filmen som hittills spelat in 157 miljoner kronor i USA har helt enkelt blivit en oväntat framgång och kan nu stoltsera med att vara den mest inkomstbringande japanska live-action filmen någonsin i landet. Verkligen inte illa och antalet biografer som visar filmen kommer dessutom nu öka från 2300 till 2500.

Här hemma i Sverige går det lite trögare och en vecka efter att Godzilla Minus One haft premiär står det klart att den inte ens slagit sig in på topp 10 listan som i skrivande stund domineras av den senaste Hunger Games, Knyckertz och Napoleon. Så vad väntar du på, spring och se Godzilla, nu!

Har du varit och sett nya Godzilla, och vad tyckte du om filmen?

Källan

<bild>Ingen skräcködla så långt ögat kan nå, snyft.</bild>


Godzilla Minus One Director Addresses Sequel Possibility After the Film's Dramatic Conclusion2023-12-08 18:27
Godzilla Minus One director 'wanted to make one more movie.'
Kurt Russell Addresses Possibility of Portraying Jor-El in Superman: Legacy, ‘You Never Know’2023-12-08 17:01
Kurt Russell didn't know anything about the rumors he would portray Jor-El in Superman: Legacy, but the actor says, "You never know."
Flyg svenskutvecklad F-14 Tomcat i MS Flight Simulator2023-12-08 16:42
Svenska Heatblur gör Top Gun-planet igen.
Spelhelg med GTA (om än inte GTA VI...)2023-12-08 16:00
Vi spelar Grand Theft Auto i helgen. Daniel spelar INTE The Day Before.
Konsolkriget dag tre – sista slaget2023-12-08 12:00
Tredje och sista dagen – vinnaren koras!