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

'O.J. Simpson Was Innocent' Movie Offered Owen Wilson $12 Million to Star2024-04-25 00:20
A satirical thriller is being made about O.J. Simpson's innocence, but you can't pay Owen Wilson enough to star in it.
Deadpool & Wolverine Trailer Breaks One Record No One Believed Likely in the MCU2024-04-25 00:18
The MCU is changing, and Deadpool & Wolverine are going to be at the center of the storm this summer as their record-breaking run begins.
Ben Stiller Was Blindsided by His 2016 Flop Sequel: 'I Must Have Really F*cked Up'2024-04-24 22:37
Ben Stiller couldn't understand why the belated follow-up to 2001 hit Zoolander was a critical and box office misfire.
Superman’s Nathan Fillion Teases His Portrayal of Green Lantern: ‘Guy Gardner Is 90% Flawed and Doesn’t Care’2024-04-24 22:05
Nathan Fillion's take on Guy Gardner will be that of a "flawed" hero who "doesn't care" in James Gunn's upcoming Superman film.
Skyshowtime höjer priserna och börjar visa reklam2024-04-24 20:27

Hurra, nu blir det mer av de två saker vi alla älskar mest - höjda priser och reklam. Streamingtjänsten Skyshowtime planerar nämligen exakt detta, och i ett pressmeddelande nämner de den nya strukturen och de olika abonnemangsformerna.

The introduction of the new ad-supported plan—Standard with Ads—is being offered alongside its existing ad-free plan, which has been re-named Standard Plus. The price for Standard with Ads in the Nordics is 49 DKK / EUR 4.99 / 59 NOK / 59 SEK per month.

While the re-named and ad free Standard Plus sees a slight price increase. The ad free tier now costs 89 DKK / EUR 8.99 / 99 NOK / 99 SEK per month. Both subscription plans are offered at a discounted price when signing up for an annual subscription.


Kort och gott så kommer det nya standard-abonnemanget kosta dig 59 kronor i månaden, och innehålla 4-5 minuter reklam varje timme. Det tidigare (och annonsfria) abonnemanget höjs till 99 kronor per månad och döps om till Standard Plus.

Prenumererar du på Skyshowtime, och vad tycker du om dessa nya priser och abonnemang?

<bild>Betala mer eller smaka reklam era kretiner!</bild>

Källan


Amerikanska senaten om Tiktok: Sälj eller eller stick från landet2024-04-24 20:15

Det blir bråda dagar för kinesiska ByteDance framöver. Den amerikanska senaten har nämligen nu röstat igenom ett förbud för tjänsten i landet, förutsatt att de inte säljer till en annan part som är med i linje med amerikanska intressen.

Lagförslaget godkändes förra månaden och president Joe Biden gjorde det officiellt med sin underskrift för bara några timmar sedan. Vilket nu riskerar starta en lång, utdragen legal strid då Tiktok sedan tidigare flaggat för att de under inga omständigheter planerar att ge upp utan motstånd.

Tiktok har gång på gång hävdat att man inte lagrar någon data om amerikanska användare. Något som går stick i stäv med det krav från kinesiska staten att när som helst, hur som helst kunna kräva data från landets bolag om de så önskar.

ByteDance har nu ett år på sig att sälja sin amerikanska del, eller tvingas dra från landet.

Vad tycker du om detta, toppen eller dåligt?

<bild>Ingen kinesisk spionverksamhet i USA, om senaten själv får välja.</bild>

Källan


Konsolspelare behöver köpa 7 Days To Die på nytt när det lämnar Early Access2024-04-24 20:00

2013 lanserades open world-zombietiteln 7 Days To Die i Early Access på Steam, en av de första kända spelen som använde sig av det då nya konceptet att lansera spel som "work in progress". Tre år senare kom det till konsoler och nu snart, någon gång i juni, kommer det nå version 1.0. Detta berättar utvecklarna The Fun Pimps på X/Twitter.

Medan PC-spelares Early Access-versioner kommer föras sömlöst över till 1.0, så ser det däremot annorlunda ut för konsollirare. I en FAQ förklarar utvecklarna varför dessa kommer att behöva köpa spelet på nytt.

"Due to the significant technical differences between old and current console hardware, we will not be upgrading the legacy version. Legacy owners will have to buy the new title. However, we are working closely with Sony and Microsoft to provide a discount to digital legacy owners on their purchase of the new console edition."

Äger du 7 Days To Die till PS4/Xbox One kommer du alltså kanske få rabatt på PS5-/Xbox Series-versionen. Huruvida det blir så får tiden utvisa, säkert är att Early Access inte fungerar så som vi är vana vid i detta fallet.

<bild>Är det rätt att behöva betala för 1.0-version när man redan äger spelet i Early Access?</bild>


Spotify rapporterar rekordvinst2024-04-24 19:57

Daniel Ek skrattar hela vägen till banken. Spotify gjorde nämligen rekordvinst under årets första kvartal med en markant ökning i lönsamhet och som resultat har aktien rusat på börsen.

Ett fint sätt att fira sin 18-årsdag kan tyckas och enligt SvD näringsliv vad det en till synes nöjd Daniel Ek som presenterade dagens resultat, och den 20-procentiga ökningen av intäkter är enligt honom i linje med förväntningarna.

Vinsten på 1,9 miljarder kronor var däremot mindre än vad man hoppats på, likväl som det globala antalet användare som nu rapporteras vara 615 miljoner. Daniel Ek tror dock på att siffrorna kommer fortsätta uppåt i framtiden.

Prognosen för årets andra kvartal från företagets ledning är nu att öka vinsten till 2,7 miljarder kronor och antalet användare till 631 miljoner. Ek nämner också en ökad flexibilitet för kunderbjudanden i framtiden.

Är du Spotify-prenumerant och vad tycker du om tjänsten?

<bild>"Dollar bills, dollar bills Watch it falling for me, I love the way that feels Dollar bills, dollar bills Keep on falling for me, I love the way it feels"</bild>

Källan


Sony Closes Deal with Hasbro for Film & TV Rights to Murder-Mystery Board Game Clue, Heads Tease Adaptations2024-04-24 18:55
75 years after Clue was published by Waddingtons & Parker Brothers, Sony acquires the film and TV rights to the classic game from Hasbro
Aaron Taylor-Johnson är märkbart trött på att få frågan om han ska spela James Bond2024-04-24 18:07

Det är fortfarande en av filmvärldens största frågor som vi inväntar ett avslöjande kring. Det handlar givetvis om vem som ska axla Bond när filmserien får en omstart och det hetaste namnet under en tid har då varit Aaron Taylor-Johnson. Innan det avslöjas officiellt vem som blir nästa 007 så lär den 33-årige skådespelaren få stå ut med att bli tillfrågad kring detta ett antal gånger till.

I en ny intervju får Aaron frågan ifall han är trött på att bli tillfrågad gällande Bond och reaktionen blir en märkbart trött suck och sedan frågar han tillbaka: "You sick of asking the question?" Intervjuaren svarar att hon vill veta varpå de båda skrattar kort innan Aaron traskar iväg med ett: "Alright, have a good one."

Ni kan kika på klippet här.
<bild>Den nya Bond? Ja, förr eller senare får vi reda på det...</bild>


PUBG gör en Fortnite – originalbanan Erangel kommer tillbaka2024-04-24 18:06
Två veckors nostalgifest nästa månad.
En comeback med stil – Topspin 2K25 får bra betyg2024-04-24 16:29
Serien tillbaka efter 14 år.
Sand Land2024-04-24 15:00
Akira Toriyamas farväl till spelvärlden har sina brister men känns i hjärtat.
Stellar Blade2024-04-24 14:00
En snabb, svår och ultrasnygg actionfest. Men den är inte felfri.