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

For King & Country Movie, Unsung Hero, Releases Clip and Trailer2024-04-23 16:07
Terry O'Quinn stars in this clip for Unsung Hero, based on the remarkable true story of the Smallbone family and the band For King + Country.
Ridley Scott Reveals Why Working on His Original Alien Movie was a 'Nightmare'2024-04-23 15:43
Ridley Scott was still relatively unknown when he made Alien, and that turned the shoot into a 'nightmare.'
Kolla in krigarprinsessan Illaoi i ursnygg 2XKO-trailer2024-04-23 15:19

Det har gått fem långa år sedan Riot Games utannonserade Project L, och i år kommer vi äntligen att få en ordentlig titt på det när EVO Japan sparkar igång den 27 april. Spelet har till slut fått en riktig titel och kommer heta {2XKO}, och är fyllt med League of Legends Champions att slåss med och mot.

Nu har en av dem fått en djupgående och helt häpnadsväckande introduktionsvideo fylld med gameplay, som avslöjar att detta kommer att bli en seriös utmanare till {Street Fighter 6}, {Mortal Kombat 1} och {Tekken 8}. Karaktären är Illaoi, the Kraken Preistess, och hon beskrivs så här i pressmeddelandet:

"As the prophet of Nagakabouros, the Great Kraken, Illaoi's faith demands that she take control of her own destiny by always moving forward. She wields a golden totem to test the will of her opponents and summon tentacles to fight by her side.

In 2XKO, Illaoi is a heavy-hitting juggernaut who overwhelms enemies with pressure as unyielding as her faith. She's all about landing big hits and dealing big damage. Then, using tentacles to lock her opponent down and combo out of control."


Kolla in videon nedan av detta extremt snygga fightingspel (free-to-play) som ska släppas nästa år till PC, Playstation och Xbox.

<video>
<bild>Med tentakler kan man tydligen slå världen med häpnad.</bild>


LaKeith Stanfield Eyed to Star as Vampire Hunter in El Paso, Elsewhere Video Game Adaptation2024-04-23 15:10
Stanfield could produce and star in the vampire hunting, Max Payne-inspired video game movie.
Director Reveals Netflix’s Algorithm Rejected a Pitch for a Heath Ledger Comedy Sequel: ‘It’s the Strangest Thing’2024-04-23 15:00
A Knight's Tale 2 would have seen the daughter of Heath Ledger's character leading the movie, but Netflix's algorithm said it would not be a hit.
Christopher Nolan Almost Made a Comedy Before Memento, Reveals Brother Jonathan Nolan2024-04-23 14:59
Christopher Nolan considered directing his first comedy, before producing Memento.
Payday 3 får quickplay – 7 månader efter releasen2024-04-23 14:48
Det blir sakta men säkert bättre.
Fallout-seriens kostymdesigner berättar om Vault-dräkterna2024-04-23 14:05

I Fallout-serien är det tydligt att skaparna lagt stor vikt vid detaljerna i utformningen av både miljöer och plagg. Detta gäller inte minst Vault-dräkterna, som känns som en strålande (pun intended, som kidsen säger) hyllning till de dräkter vi ser i spelen.

Nu har seriens kostymdesigner Amy Westcott berättat om arbetet med att få allt autentiskt i en intervju hos PC Gamer, och säger bland annat:

"We were dealing with real people with real bodies. So it was a lot about what could look universally flattering in a way that wasn't skin tight, you know, and wouldn't make everybody feel terrible and self conscious, but had a cool [look].

It's almost like we followed a bit of an aviation suit, you know, where you zip it up and use that. So it was tight, but it wasn't within an inch of its life kind of tight."


För att få till den här looken såg Wescott till att kostymerna hade ett matt tyg med fyrvägsstretch, som kom från ett företag som heter Mectex. Den verkliga utmaningen låg i att hitta ett tygstycke som kunde bäras i 12-15 timmar om dagen och ändå återfå ursprungsformatet efter detta. Något de alltså tycks ha lyckats med.

<bild>Vi kan väl inte vara de enda som just nu undrar var man kan få tag på en egen dräkt?</bild>


Tom Holland: "Jag har Spider-Man att tacka för mitt liv och min karriär"2024-04-23 13:39

Ironiskt nog tycks MCU behöva en superhjälte för att räta upp skutan igen efter otaliga felsatsningar ända sedan Avengers: Endgame släpptes år 2019. Deadpool & Wolverine-trailern igår fick mycket uppmärksamhet, men frågan är om det räcker med tanke på att det är barnförbjuden underhållning, och kanske behöver Marvel en hjälte som Spider-Man.

Men när Tom Hollands version av Peter Parker återvänder, vet vi fortfarande inte, men han är iallafall fortfarande intresserad av att återvända till sin paradroll. I ett samtal medDeadline berättar Holland om sin lojalitet gentemot Spider-Man, och hur han lever på hoppet så länge dörren är öppen:

"The simple answer is that I'll always want to do Spider-Man films. I owe my life and career to Spider-Man. So the simple answer is yes. I'll always want to do more."

En fjärde film med Holland i huvudrollen som Spider-Man är enligt uppgift på gång och kan till och med börja spelas in senare i år. Om det verkligen blir så, återstår dock att se.

<bild>Vilken Spider-Man är din favorit?</bild>


Gamereactor Live: Dags att avnjuta Eiyuden Chronicle: Hundred Heroes2024-04-23 13:00

Fans av {Suikoden}-serien har naturligtvis haft den 23 april inringad i sina kalendrar under lång tid, eftersom det nu är dags för lanseringen av {Eiyuden Chronicle: Hundred Heroes}, ett japanskt pixelrollspel som skapats av ett team bestående av tidigare veteraner från Suikoden-serien, som nu grunda {Rabbit & Bear Studios}. Spelet har ofta kallats för en andlig efterföljare till just Suikoden-serien, vilket innebär att det har en hög ribba att leva upp till, något vi anser att det gör.

Vi kommer även titta närmare på den inledande timmen av Eiyuden Chronicle: Hundred Heroes i dagens {GR Live}, där vår värdinna Rebeca spelar igenom inledningen av äventyret, allt på GR Live-hemsidan från och med den vanliga tiden 17:00. Se till att svänga förbi för en glimt av det japanska höjdarrollspel som du alltså kan spela idag, och det ingår trevligt nog med din {Game Pass}-prenumeration.

<bild>Ett klassiskt japanskt äventyr med hundra potentiella medlemmar till ditt team.</bild>


Atari väcker Infogrames till liv igen2024-04-23 12:24

Atari meddelar att de nu är i förd med att återuppliva varumärket Infogrames och kommer att använda det som en ny utgivningsetikett. Varumärket har inte använts ordentligt på länge, men de var stora tidigare och har gett ut spel som Alone in the Dark, Heart of Darkness och spel baserade på ikoniska karaktärer som The Smurfs, Asterix och Tintin. För att krångla till saker och ting var det Infogrames som senare väckte Atari till live, och nu väcker alltså Atari i sin tur Infogrames till liv. Atari-bossen Wade Rosen kommenterar:

"For decades, Infogrames built a reputation as a publisher and developer of amazing and eclectic games, and we are excited to bring it back."

Infogrames första uppköp blir Totally Reliable Delivery Service från 2019. Infogrames kommer försöka bygga vidare på det arbete som gjorts av spelets tidigare utvecklare tinyBuild och hoppas kunna få igång serien igen.

<bild>Minns du denna logga?</bild>

Tack VGC


Dead Island 2 finns nu på Steam – 50 % premiärrabatt2024-04-23 12:11
Ett års Epic-exklusivitet är till ända.
Fallout London försenas – igen. På grund av Bethesda-krock – igen!2024-04-23 11:02
Moddchefen tycker Bethesda borde ha informerat dem om Fallout 4-uppdateringen.
En hyllning till japanska rollspel2024-04-23 10:00
Jrpg:s var bättre förr. Ändå är Fredrik bästa jrpg-tid just nu.