80
WordPress bakom ytan Christian Ohlsson 1

WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

WordPress bakom ytan

Christian Ohlsson 1

Page 2: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Wordpress popularitet

§  Intresset för WordPress bara ökar §  http://en.wordpress.com/stats/ §  Statistik (augusti 2011)

§  15% av Top 1 Million sajter kör WP §  22% av nya webbplatser kör WP

§  200 miljoner nerladdade plugins

Christian Ohlsson 2

Page 3: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

WordPress och dess community

§  WordCamp är ett återkommande event där utvecklare och användare träffas för att diskutera design och implementation §  Hitta nästa event på wordcamp.org

§  WordPress Meetup §  Mindre organiserat, men fortfarande bra §  wordpress.meetup.com

§  WordPress Codex §  Massivt med material om hur WordPress fungerar §  Och exempelkod!

Christian Ohlsson 3

Page 4: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

WordPress och GPL

§  WordPress licentieras enligt GPL. Vanliga missuppfattningar är: §  ”Free Software kan inte användas kommersiellt” §  ”Om du gör ändringar i koden måste du publicera

dessa ändringar”

§  ”GPL kommer att ’infektera’ innehållet på din sajt”

Christian Ohlsson 4

Page 5: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Sätta igång med WordPress

§  Före man seriöst börjar fundera över färg, form och funktionalitet kan det vara bra att veta var och hur din sajt skall existera

§  Det är många val att göra, baserat på §  Kostnad

§  Gratis hostning kan begränsa dig

§  Kontroll §  Vilka verktyg finns att hantera databaser och filer?

§  Komplexitet §  Många webbhotell kapslar in installation och konfiguration

till ett paket. Vidare hantering kan kräva bra support

Christian Ohlsson 5

Page 6: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Olika typer av hostning

§  Enklaste valet är wordpress.com §  Automattic kör denna och använder WordPress

MultiUser (Tidigare WordPress MU)

§  Välj ett webbhotell som har färdigt stöd för WordPress §  Många alternativ finns

§  Installera WordPress på egen server §  Kräver en webbserver med PHP-stöd (mod_php) §  URL rewrites (mod_rewrite) §  MySQL

Christian Ohlsson 6

Page 7: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

En översikt på koden

Christian Ohlsson 7

Page 8: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Filerna i WordPress

Christian Ohlsson 8

Page 9: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Wp-config.php

§  Den viktigaste filen i en WordPress-installation §  Innehåller databasinställningar och lite annat §  Efter nerladdning: wp-config-sample.php

§  Första steget blir att byta namn på denna fil

§  Sparas normalt i root-katalogen för din WP-installation. Kan gärna flyttas upp ett steg:

Christian Ohlsson 9

/public_html/my_website/wp-config.php

/public_html/wp-config.php

Page 10: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Avancerade inställningar i wp-config

Christian Ohlsson 10

define( 'WP_SITEURL', 'http://example.com/wordpress' ); define( 'WP_HOME', 'http://example.com/wordpress' ); define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/…/…/wp-content' ); define( 'WP_CONTENT_URL', 'http://domain.com/wordpress/blog/wp-content'); define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/…/…/plugins' ); define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins'); define( 'WP_POST_REVISIONS', false ); define( 'WP_POST_REVISIONS', 5 ); define( 'AUTOSAVE_INTERVAL', 300 ); define( 'FORCE_SSL_LOGIN', true );

Många andra finns!

Page 11: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

.htaccess

§  Används framförallt för att skapa snygga permalänkar i WP §  Som standard skapas fula länkar

§  Till ex: minsajt.com/?p=542

§  Med permalänkar skapas länkar baserat på taggar, kategorier, titel eller vad du önskar!

Christian Ohlsson 11

Page 12: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Permalänkar

Christian Ohlsson 12

Page 13: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Fördelar med att använda permalänkar

§  Search Engine Optimization §  Att ha nyckelord i URL ger sidan en rejäl boost

§  Framåt-kompabilitet §  Om du vill byta CMS till Joomla eller Drupal kan

länkstrukturen hållas intakt

§  Användbarhet §  Att ha relevanta och beskrivande URL gör att det går

snabbt att kolla vad länken kan tänkas innehålla

§  Delning §  I denna era av Social Networking måste helt enkelt URL

vara förklarande!

Christian Ohlsson 13

Page 14: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Exempel på .htaccess

Christian Ohlsson 14

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress/index.php [L]

</IfModule>

http://localhost/wordpress/2014/03/hello-world/

Page 15: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

wp-content

<?php

// Silence is golden.

Christian Ohlsson 15

Page 16: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

En guidad tur i kärnan

Christian Ohlsson 16

Page 17: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Vad finns i kärnan?

§  Kärnan i WP är en samling filer som fanns med när du laddade hem WP

§  Ändras bara när du uppdaterar WP §  Innehåller inte

§  Plugins §  Teman §  Databas-inställningar §  .htaccess §  Mediafiler

§  Allt som läggs till efter installationen befinner sig utanför kärnan

Christian Ohlsson 17

Page 18: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Vad finns i kärnan?

§  Filerna är framförallt PHP-filer §  Men även CSS, JS, XML, HTML och bilder

§  Dessa filer kontrollerar hur WP arbetar, laddar in teman & pluggar, laddar inställningar och mycket mer §  Poster, Pages, Custom content §  Metadata §  Teman §  Actions, filtreras, Plugins §  Users §  Feeds, Formatering, Kommentarer

Christian Ohlsson 18

Page 19: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Wp-login.php

Christian Ohlsson 19

/** * WordPress User Page * * Handles authentication, registering, resetting passwords, * forgot password, and other user handling. * * @package WordPress */

Page 20: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Funktionsheader

Christian Ohlsson 20

/** * Output the login page header. * * @param string $title Optional. WordPress Log In Page title to display in <title/> element. * @param string $message Optional. Message to display in header. Default empty. * @param string $wp_error Optional. The error to pass. Default empty. * @param WP_Error $wp_error Optional. WordPress Error Object */ function login_header( $title = 'Log In', $message = '', $wp_error = '' ) { … }

Page 21: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Exempel: is_super_admin()

Christian Ohlsson 21

/** * Determine if user is a site admin. * * @since 3.0.0 * * @param int $user_id (Optional) The ID of a user. Defaults to the current user. * @return bool True if the user is a site admin. */ function is_super_admin( $user_id = false ) { if ( ! $user_id || $user_id == get_current_user_id() ) $user = wp_get_current_user(); else $user = get_userdata( $user_id ); if ( ! $user || ! $user->exists() ) return false; // Resten bort-kommenterat ☺ }

Page 22: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Viktiga filer

Christian Ohlsson 22

Page 23: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Functions.php

§  Innehåller huvudparten av de mest använda WordPress-funktionerna §  Dess API

§  Används för att interagera med WP på ett standardiserat sätt

§  Används av §  Plugins §  Teman

§  WP självt

Christian Ohlsson 23

Page 24: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Option.php

§  Hanterar inhämtning av options §  add_option, update_option, get_option §  set_transient, get_transient, delete_transient §  add_site_option, update_site_option, get_site_option

Christian Ohlsson 24

Page 25: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Formatting.php §  Hanterar formatteringsregler §  esc_attr

§  Snyggar till HTML-attribut §  esc_html

§  Snyggar till HTML §  esc_url

§  Snyggar till en URL §  sanitize_text_field

§  Snyggar till strängar från input ellerdatabasen §  is_email

§  Verifierar e-postadresser §  capital_P_dangit

§  Ser till att P i WordPress alltid skrivs med stort ”P”

Christian Ohlsson 25

Page 26: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Pluggable.php §  Ser till att man kan ”override’a” vissa kärnfunktioner i

WP. Laddas om de inte blivit definierade i något plugin §  wp_mail

§  Skickar mail från WordPress. §  get_userdata

§  Returnera all userdata från en viss userID. §  get_currentuserinfo

§  Returnera userdata från den nu inloggade användaren §  wp_set_password

§  Sätter ett nytt lösenord §  wp_logout §  wp_redirect

§  Redirects till en annan sida

Christian Ohlsson 26

Page 27: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Plugin.php

§  add_filtrera §  Hook som låter dig ändra content före visning/sparning

§  add_action §  Hooks som WP kör vid ett visst tillfälle

§  register_activation_hook §  Hook som kallas när plugin aktiveras

§  register_deactivation_hook §  Hook som kallas när plugin deaktiveras

§  plugin_dir_url §  Filsystemets path till ett plugin

§  plugin_dir_path §  URL till ett plugin

Christian Ohlsson 27

Page 28: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

User.php

§  get_users §  Ger en lista på användare från kriterier

§  add_user_meta, get_user_meta, delete_user_meta §  Skapa, hämta och ta bort metadata om användare

§  username_exists §  email_exists §  wp_insert_user och wp_update_user

§  Skapa och uppdatera konton

Christian Ohlsson 28

Page 29: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Post.php

§  wp_insert_post §  Skapar en ny post

§  get_posts §  Hämtar poster enligt ett kriterie

§  add_post_meta §  Skapar metadata till en post.

§  get_post_meta §  Hämtar metadata till en post

§  set_post_thumbnail §  Sätter en featured bild på en post

§  register_post_type §  Registerar custom post type i WordPress

Christian Ohlsson 29

Page 30: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Deprecated Functions

§  När en ny version av WordPress skapas kan vissa funktioner markeras som ”deprecated”

§  Innebär inte att den tagits bort från WP §  Men det kan hända ”snart” så hitta alternativ

§  Alternativet brukar vara tydligt markerat

Christian Ohlsson 30

/** * Retrieve current theme name. * *  @since 1.5.0 *  @deprecated 3.4.0 *  @deprecated Use (string) wp_get_theme() *  @see wp_get_theme() * *  @return string */

Page 31: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

WordPress Codex

Christian Ohlsson 31

Page 32: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Vad är den där Codex för nåt?

§  WordPress Codex är en wiki för dokumentation om WP §  Finns på flera språk

§  ”En encyklopedi över kunskap om WordPress”

§  http://codex.wordpress.org/ §  Använder Google Custom Search

§  http://codex.wordpress.org/Special:Search §  Inte så känd men erbjuder ”vanlig” sökning

§  Hjälp gärna till!

Christian Ohlsson 32

Page 33: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Loopen

Christian Ohlsson 33

Page 34: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Loopen i WordPress

§  Loopen i Wordpress är den kod som används för att visa innehåll på en webbplats driven av Wordpress

§  Den används genom att "loopa" igenom och visa ett antal inlägg, exerpts och annat

§  När webbplatser använder Custom Posts och Fields används loopen också för att visa data

§  Loopen är ganska mångsidig och används för att visa olika typer av innehåll på sidan

§  Den kod som används för att skapa Loopen är i sin kärna ganska enkel, men det kan anpassas i mycket stor utsträckning

Christian Ohlsson 34

Page 35: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Den grundläggande tanken bakom Loopen §  Loopen börjar med att se om den aktuella sidan är tänkt

att visa en lista av flera inlägg eller en enda post eller sida . §  Om sidan är tänkt att lista blogginlägg så kommer den att lista

titel och innehåll för varje inlägg §  Om sidan är en Single page kommer bara visa innehållet på den

sidan . §  Om inga inlägg finns eller att någon kommer åt en sida

som inte existerar, kan man visa ett eget meddelande §  På grund av WordPress mallar (templates), kan loopen

anpassas för nästan varje sida §  Man kan också använda flera loopar på en sida för att

visa olika typer av innehåll

Christian Ohlsson 35

Page 36: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Loooopen

Christian Ohlsson 36

HEADER

SIDEBAR

FOOTER

Page 37: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

En enkel Loop

Christian Ohlsson 37

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<h2><?php the_title() ;?></h2> <?php the_post_thumbnail(); ?> <?php the_excerpt(); ?>

<?php endwhile; else: ?>

<p>Sorry, no posts to list</p> <?php endif; ?>

Page 38: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

En annan loop

Christian Ohlsson 38

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<h1><?php the_title() ;?></h1> <?php the_content(); ?>

<?php endwhile; else: ?>

<p>Sorry, this page does not exist</p> <?php endif; ?>

Page 39: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Vad kan Loopen visa? §  next_post_link §  previous_post_link §  the_category §  the_author §  the_content §  the_excerpt §  the_ID §  the_meta §  the_shortlink §  the_tags §  the_title §  the_time

Christian Ohlsson 39

§  is_home() §  is_admin() §  is_single() §  is_page() §  is_page_template() §  is_category() §  is_tag() §  is_author() §  is_search() §  is_404() §  has_excerpt()

Page 40: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Avancerad Loop

Christian Ohlsson 40

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <article id="post-<?php the_ID(); ?>" <?php if(is_category('featured')): ?> class="featured-post"<?php endif; ?>>

<h1><?php the_title() ;?></h1> Published on <?php the_time('M j, Y'); ?> by <?php the_category(', '); ?> in <?php the_category(', '); ?> <?php the_content(); ?> <?php comment_form(); ?> <div class="prev-next-links"> <ul><li><?php next_post_link(); ?></li> <li><?php previous_post_link(); ?></li></ul></div>

</article> <?php endwhile; else: ?>

<p>Sorry, this post does not exist</p> <?php endif; ?>

Page 41: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Multipla loopar

§  Ibland vill man ha flera loopar §  Kanske för att visa inlägget och sedan visa alla

inlägg relaterade till detta inlägg

§  Viktigt är att använda rewind_posts() före man loopar en andra (tredje, fjärde eller femte) gång

Christian Ohlsson 41

Page 42: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Exempel på multipla Loopar

Christian Ohlsson 42

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <h1><?php the_title() ;?></h1> <?php the_excerpt(); ?>

<?php endwhile; else: ?> <p>Sorry, there are no posts to display</p>

<?php endif; ?> <?php rewind_posts(); ?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<h1><?php the_title() ;?></h1> <?php the_excerpt(); ?>

<?php endwhile; else: ?> <p>Sorry, there are no posts to display</p>

<?php endif; ?>

Page 43: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

WP_Query()

§  Funktionen som användes i förra avsnittet för att ställa in parametrar är en del av en mycket kraftfull WordPress funktion kallad WP_Query

§  Denna funktion kan användas för att göra specifika WordPress-loopar som bygger på ett stort antal alternativ

§  WP_Query funktionen placeras före loopen §  En trevlig sak med denna funktion är att allt du

behöver göra är att placera den före loopen och du behöver inte ändra något om loopen

Christian Ohlsson 43

Page 44: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Vanliga val till WP_Query()

§  author §  author_name §  cat §  category_name §  tag §  p §  name §  pagename §  page_id

Christian Ohlsson 44

§  post_parent §  post_type §  posts_per_page §  offset §  order §  orderby §  year §  monthnum §  day

Page 45: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Exempel på WP_Query()

Christian Ohlsson 45

<?php $args = array( 'pagename' => 'about-us' ); $the_query = new WP_Query( $args );

?> <?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

<h1><?php the_title() ;?></h1> <?php the_excerpt(); ?>

<?php endwhile; else: ?> <p>Sorry, there are no posts to display</p>

<?php endif; ?>

Page 46: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Avancerat exempel

Christian Ohlsson 46

<?php $args = array( 'author_name' => ’crille', 'orderby' => 'title', 'post_type' => 'workshops' 'year' => 2012 ); $the_query = new WP_Query( $args );

?> <?php if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?>

<h1><?php the_title() ;?></h1> <?php the_excerpt(); ?>

<?php endwhile; else: ?> <p>Sorry, there are no posts to display</p>

<?php endif; ?>

Page 47: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Datahantering

Christian Ohlsson 47

Page 48: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Databaser på webben

§  Nästan varje webbplats på Internet idag är kopplad till en databas som lagrar information om webbplatsen

§  WordPress är inte annorlunda och drivs av en MySQL-databas

§  Denna databas lagrar all data för din webbplats, inklusive ditt innehåll, användare, länkar, metadata, inställningar, med mera

§  Den här delen handlar om hur data lagras, vilken data som lagras och hur man arbetar med denna data i WordPress

Christian Ohlsson 48

Page 49: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

WordPress består av 11 tabeller

Christian Ohlsson 49

Page 50: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Tabellerna i WordPress

1.  wp_commentmeta 2.  wp_comments 3.  wp_links 4.  wp_options 5.  wp_postmeta 6.  wp_posts 7.  wp_terms 8.  wp_term_relationships 9.  wp_term_taxonomy 10. wp_users 11. wp_usermeta

Christian Ohlsson 50

Page 51: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Databasklassen $wpdb

§  WordPress innehåller en klass för att man ska kunna hantera databasen manuellt §  Bra för pluginskapare eller om man vill ändra på

många poster

§  Använd denna klass! §  Pillra inte phpMyAdmin om du inte måste J

§  Mest viktiga funktionen i denna klass är prepare()

§  Ser till att allt går säkert till

Christian Ohlsson 51

Page 52: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Exempel på förfrågan

Christian Ohlsson 52

<?php $field_key = "address"; $field_value = "123 Elm St"; $wpdb->query( $wpdb->prepare( "INSERT INTO $wpdb->my_custom_table ( id, field_key, field_value ) VALUES ( %d, %s, %s )”, 1, $field_key, $field_value ) ); ?>

Page 53: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Manipulera databasen

§  Ibland är det oundvikligt att hantera sin WordPress-databas med ett verktyg

§  Lämpligast är phpMyAdmin §  Men man kan även köra CLI såklart

§  För att ställa SQL-frågor: Tryck på SQL-tabben

Christian Ohlsson 53

Page 54: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Tabellerna i WP

Christian Ohlsson 54

Page 55: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Ställa frågor i phpMyAdmin

Christian Ohlsson 55

Page 56: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Exempel på frågor

Christian Ohlsson 56

SELECT * FROM wp_posts WHERE post_type = ‘revision’

Page 57: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Hämtar inlägg med attachement

Christian Ohlsson 57

SELECT guid, wp_posts.* FROM wp_posts WHERE post_type = 'attachment’

Page 58: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Returnerar två option_name

Christian Ohlsson 58

SELECT * FROM wp_options WHERE option_name IN ( 'siteurl','home' )

Page 59: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Sätter nytt domämnamn på sajten

Christian Ohlsson 59

UPDATE wp_options SET option_value = 'http://yournewdomain.com' WHERE option_name IN ('siteurl','home')

Page 60: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Listar aktiva plugins

Christian Ohlsson 60

SELECT * FROM wp_options WHERE option_name = 'active_plugins’

Page 61: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Byter lösenord på admin

Christian Ohlsson 61

UPDATE wp_users SET user_pass = MD5('Hall0w33n') WHERE user_login ='admin' LIMIT 1;

Page 62: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Listar användares epost-adresser

Christian Ohlsson 62

SELECT DISTINCT user_email FROM wp_users

Page 63: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Custom Post Type

Christian Ohlsson 63

Page 64: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Fördefinierade post-typer i WP

§  Post §  Inlägg eller artiklar sorterade på tid

§  Page §  Hierarkiska statiska sidor

§  Attachment §  Media uppladdat till sajten som bilder och filer

§  Revision §  En version av en post sparad som backup

§  Nav Menus §  Meny-saker tillagda med WP menyhanterare

Christian Ohlsson 64

Page 65: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Vad är en Custom Post Type

§  En egenhändigt definierat stycke med information §  Med Custom Post måste du inte ha de inbyggda

typerna, utan kan skapa dina egna §  Produkter

§  Events

§  Filmer §  Forum

§  Bilar

§  Hus §  Biljettsystem

Christian Ohlsson 65

Du väljer!

Page 66: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Varför Custom Post Type?

§  Du kan då skapa innehåll anpassad precis efter vad du hade tänkt §  Kan göras med vanliga poster också, men nu blir det

precisions-tillverkat!

Christian Ohlsson 66

Page 67: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Exempel

Christian Ohlsson 67

<?php add_action( 'init', ’sajt_register_custom_post_filmer' ); function sajt_register_custom_post_filmer () { register_post_type( ’filmer', array( 'labels' => array( 'name' => ’Filmer' ), 'public' => true, ) ); } ?>

Page 68: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Fler argument: labels

§  name: Plural form på namnet §  singular_name: Namnet i singular §  add_new: Text att skriva ut för att skapa nytt §  add_new_item: Text att skriva ut på headern §  edit_item: Text att skriva ut för editering §  new_item: Text att skriva ut I favorit-menyn §  view_item: Visas bredvid permalänken §  search_items: Knapp-text på sökrutan §  not_found: Text att visa när inga poster hittats §  not_found_in_trash: Samma, fast I papperskorgen §  menu_name – Namn för menyn i dashboard

Christian Ohlsson 68

Page 69: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Riktigt exempel

Christian Ohlsson 69

add_action( 'init', 'sajt_register_custom_post_filmer' ); function sajt_register_custom_post_filmer () { $labels = array( 'name' => ’Filmer', 'singular_name' => ’Film', 'add_new' => ’Lägg till Film', 'add_new_item' => ’ Lägg till Film', 'edit_item' => ’Editera Film', 'new_item' => ’Ny Film', 'view_item' => ’Se Film', 'search_items' => ’Sök Filmer', 'not_found' => ’Inga filmer funna', 'not_found_in_trash' => 'Inga filmer funna I papperskorgen', 'menu_name' => ’Filmer' ); $args = array( 'public' => true, 'labels' => $labels ); register_post_type( ’filmer', $args ); }

Page 70: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Visa upp Custom Posts

§  Man kan såklart använda den vanliga Loopen för detta, men man kan också få det lite mer anpassad §  OBS! Ska Custom visas i ”index.php” måste man skriva

en fråga till $wpdb!

§  Skapa filen archive-{post-type}.php §  Exempelvis: archive-filmer.php

§  Du har nu skapat en Template File!

Christian Ohlsson 70

Page 71: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Taxonomi

Christian Ohlsson 71

Page 72: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Tax-… Vaddå?

§  Taxonomi är ett sätt man kan använda i WP för att gruppera liknande saker tillsammans

§  Man kan till exempel använda Kategorier för att gruppera Poster som hör ihop tillsammans §  Genom att gruppera dessa tillsammans har du definierat

dess taxonomi §  Taxonomi kan vara hieratiska

§  Kategorier & subkategorier §  De inbyggda är:

§  Category §  Tag §  Link category

Christian Ohlsson 72

Page 73: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Icke-hieratisk Taxonomi

Christian Ohlsson 73

<?php $args= array(

'label' => ‘Betyg’ ); register_taxonomy( ‘betyg', ’filmer', $args); ?>

Page 74: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Fler argument: labels §  name: Namnet på din taxonomy §  singular_name: Singular-namnet §  search_items: Texten på “search items” §  popular_items: Texten på “popular items” §  all_items: Texten på detta §  parent_item: Namnet på föräldern (om hieratiskt) §  parent_item_colon: Som parent_item, med med ett kolon §  edit_item: Texten för Edit §  update_item: Texten för Update §  add_new_item: Texten för Lägg till ny §  new_item_name: Namnet på Lägg till ny §  separate_items_with_commas: Separera med komma? §  add_or_remove_items: Texten på detta §  choose_from_most_used: Välja från senaste? §  menu_name: Namnet I menyn

Christian Ohlsson 74

Page 75: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Riktigt exempel

Christian Ohlsson 75

$labels = array( 'name' => ’Betyg', 'singular_name' => 'Betyg’, 'search_items' => ’Sök Betyg', 'all_items' => ’Alla Betyg', 'parent_item' => ’Förälder-Betyg', 'parent_item_colon' => 'Förälder-Betyg:', 'edit_item' => ’Ändra Betyg', 'update_item' => ’Ändra Betyg', 'add_new_item' => ’Lägg till nytt Betyg', 'new_item_name' => ’Ny Betyg-genre', 'menu_name' => 'Betyg'

); $args = array(

'hierarchical' => false, 'labels' => $labels

); register_taxonomy( ’betyg', ’filmer', $args);

Page 76: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Custom Post Type UI

Christian Ohlsson 76

Page 77: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Lägg till Taxonomier

Christian Ohlsson 77

Page 78: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Hantera Custom Posts

Christian Ohlsson 78

Page 79: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Mer läsning §  Relaterade artiklar I Codex

§  http://codex.wordpress.org/Post_Types §  http://codex.wordpress.org/Function_Reference/register_post_type §  http://codex.wordpress.org/Taxonomies

§  Artiklar om Custom Post Type §  http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress §  http://justintadlock.com/archives/2010/02/02/showing-custom-post-types-on-your-

home- blog-page §  http://kovshenin.com/archives/custom-post-types-in-wordpress-3-0/ §  http://wpengineer.com/impressions-of-custom-post-type/ §  http://kovshenin.com/archives/custom-post-types-in-wordpress-3-0/

§  Artiklar om Custom Taxonomies §  http://justintadlock.com/archives/2009/05/06/custom-taxonomies-in-wordpress-28 §  http://justintadlock.com/archives/2009/06/04/using-custom-taxonomies-to-create-a-

movie- database §  http://www.shibashake.com/wordpress-theme/wordpress-custom-taxonomy-input-

panels

Christian Ohlsson 79

Page 80: WordPress bakom ytan - Högskolan Västmedia.hv.se/kurser/imcoh/wp-content/uploads/sites/26/... · 2015-10-08 · Om du vill byta CMS till Joomla eller Drupal kan länkstrukturen

Christian Ohlsson 80