HUOM! Voit itse lisätä ja muuttaa sisältöä muokkaa-painikkeiden avulla

 Olet itse vastuussa tämän teoksen käytöstä aiheutuvista vahingoista Lue lisää.

Wordpress

Kohteesta Wikikko - kansan taitopankki
Loikkaa: valikkoon, hakuun

Asennus[muokkaa]

Yksinkertaista!

Suomenkielinen käyttöliittymä[muokkaa]

Jos et asentanut WordPress ohjelmistoa sivun http://fi.wordpress.org latauslinkistä, suomenkielen kielipaketti ei sisälly tiedostoihisi. Voit lisätä sen esimerkiksi seuraavasti:

  1. Lataa http://fi.wordpress.org osoitteesta viimeisin WordPress
  2. Pakkaa zip-tiedostoksi languages -hakemisto wordpress/wp-content/languages
  3. Siirrä zip palvelimelle ja pura se hakemistoon wordpress/wp-content/ jolloin muodostuu wordpress/wp-content/languages
  4. Muuta wordpress/wp-config.php tiedostoon
define('WPLANG', 'fi');

Muutos näkyy heti ladatessasi WordPress -sivun.

Tiedosto-oikeudet[muokkaa]

https://codex.wordpress.org/Changing_File_Permissions

.htaccess[muokkaa]

public_html/wordpress/.htaccess
# BEGIN WordPress
<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>
# END WordPress

Asennusongelmat[muokkaa]

Suomenkielinen teema[muokkaa]

Twentyfourteen, twentythirteen ja twentytwelve teemojen suomenkieliset kielipaketit sisältyvät edellisessä kohdassa esitettyyn suomenkieliseen käyttöliittymään.

  • Sijainti wp-content/themes/teemannimi/lang

Pikavinkkejä[muokkaa]

  • wp-config.php sijaitsee hakemistossa wordpress tai wp-content tai wp-includes
  • Sähköpostien lähettäminen lisäosasta ei tavoita vastaanottajaa.

Sivujen latautumisnopeus[muokkaa]

  • Tähän vaikuttaa esim. palvelimen tekniikka ja kuinka se on ohjelmoitu esimerkiksi erityisesti juuri WordPress (WP) julkaisualustoille. Esim. SiteGround on kiinnittänyt tähän huomiota. Lisäksi mitä enemmän lisäosia ja mitä monimutkaisempia ne ovat, sitä kauemmin sivut latautuvat.
  • Kannattaa ajoittain käyttää Googlen PageSpeed Insights testeriä: https://developers.google.com/speed/pagespeed/insights
  • Sivujen latautumisnopeuteen voi vaikuttaa esim. seuraavasti:
  • Ota käyttöön Gzip kompressointi. Lisää WordPress hakemiston juuressa olevaan .htaccess tiedostoon seuraava koodi ja testaa Googlen testerillä sen toimivuus.
<IfModule mod_deflate.c>
# Compress HTML, CSS, JavaScript, Text, XML and fonts
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE font/opentype
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml

Ylläpito[muokkaa]

Vinkkejä[muokkaa]

Ohjelmointiapua[muokkaa]

https://codeable.io

Artikkeli (post)[muokkaa]

  • Artikkelilla tarkoitetaan yleensä uutista tai blogia verrattuna sivuun, joka on tapa esittää jotain harvemmin muutettavaa sivustossa. Ks. https://wpopas.fi/mita-eroa-on-sivuilla-ja-artikkeleilla
  • Sivun luominen, joka tulostaa artikkelit kun haluat etusivun olevan staattinen sivu eikä viimeisimmät postit.
    • Lisää tyhjä sivu (page), jossa poista raksit keskustelu kohdasta (2 kpl).
    • Mukauta teemaa niin, että valitse etusivuksi haluamasi sivu ja valitse artikkelisivuksi äsken luomasi tyhjä sivu.

Editori[muokkaa]

  • Jos kaipaat aiempaa WordPress-editoria, se löytyy lisäosana nimeltä Classic Editor

Käyttäjän ID-numero[muokkaa]

  • Valitse käyttäjä käyttäjäluettelosta muokkaustilaan ja katso selaimen osoiteriviltä user_id=
  • Käyttäjälistaukseen saa ID-sarakkeen seuraavalla skriptillä. Lisää se KÄYTTÄMÄSI TEEMAN functions.php -tiedostoon. Huomaa, että skripti häviää kun teema päivittyy tai sarake ei näy jos vaihdat teemaa. Tämän voi estää tekemällä child-teeman ja lisäämällä skriptin sen functions.php -tiedostoon. Lähde: https://rudrastyh.com/wordpress/get-user-id.html
/*
 * Adding the column
 */
function rd_user_id_column( $columns ) {
	$columns['user_id'] = 'ID';
	return $columns;
}
add_filter('manage_users_columns', 'rd_user_id_column');
 
/*
 * Column content
 */
function rd_user_id_column_content($value, $column_name, $user_id) {
	if ( 'user_id' == $column_name )
		return $user_id;
	return $value;
}
add_action('manage_users_custom_column',  'rd_user_id_column_content', 10, 3);
 
/*
 * Column style (you can skip this if you want)
 */
function rd_user_id_column_style(){
	echo '<style>.column-user_id{width: 5%}</style>';
}
add_action('admin_head-users.php',  'rd_user_id_column_style');

Näytä kaikki tai enemmän käyttäjiä / sivuja / artikkeleita[muokkaa]

Ylläpidon puolella listauksen määrää voi säätää avaamalla sivun yläosassa olevan 'Näyttöasetukset' ja määrittelemällä kohteisen määrän per sivu.

Sivuhierarkia[muokkaa]

  • Sivuhierarkiapudotusvalikkoa ei välttämättä enää näy uutta sivua lisättäessä tai sitä muokattaessa (2019). Hierarkiaa voi kuitenkin vaihtaa kaikki sivut -luettelossa valitsemalla kyseisen sivun kohdalta pikamuokkaus.

Staattinen etusivu[muokkaa]

Oletuksena asennuksen jälkeen etusivulla näkyy artikkeli-julkaisuja.

  1. Lisää uusi sivu esim. nimellä Etusivu ja julkaise se julkisena. Varmista ettei 'Salli kommentointi' ole valittuna.
  2. Avaa Ulkoasu > Mukauta > Kotisivun asetukset
    1. Aseta Etusivuksi em. Etusivu-sivu

Uutiset-sivu[muokkaa]

Uutiset-sivu, jossa näkyy artikkeli-julkaisut.

  1. Lisää uusi sivu esim. nimellä Uutiset
  2. Avaa Ulkoasu > Mukauta > Kotisivun asetukset
    1. Aseta Artikkeleiden sivuksi em. Uutiset-sivu
  3. Lisää valikkolinkki

Uutiset ja blogi[muokkaa]

Jos haluat em. uutisten lisäksi muitakin sivuja, joissa näkyy erilaisia artikkeleita. Lisää artikkeleille kategorioita, esim. uutiset, blogi jne. Artikkelia kirjoittaessa valitse mihin kategoriaan artikkeli kuuluu.

  1. Lisää uusi valikon kohta valitsemalla valikoiden lisäys-sivulla Kategoriat-kohdasta haluttu kategoria, esim. em. Blogi.

Valikon sisennys[muokkaa]

Normaalisti valikossa näkyy hierarkiassa ylin, mutta klikattaessa kyseistä valikon kohtaa, aukeaa alavalikot.

  1. Avaa Ulkoasu > Mukauta > Oma CSS > Lisää seuraava koodi
.widget_nav_menu li.menu-item ul.sub-menu {
    display: none;
}

.widget_nav_menu li.current-menu-item ul.sub-menu ,
.widget_nav_menu li.current-menu-ancestor ul.sub-menu {
    display: inherit;
}

Viimeisimpien artikkeleiden otsikot linkkeineen artikkeleihin staattisella etusivulla[muokkaa]

  1. Asenna esim. lisäosa Insert PHP, jotta voit käyttää sivuilla ja artikkelissa PHP-ohjelmointikieltä, joka ei ilman lisäosaa ole mahdollista. Aseta PHP-koodi [insert_php] ja [/insert_php] -tagien väliin.
  2. Vaihda etusivun muokkaus 'Teksti'-editorin puolelle ja lisää:
[insert_php]
<ul>
$args = array( 'numberposts' => '2' );  // montako artikkelia tulostetaan
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
echo '<li><a id="" title="Look '.esc_attr($recent[" href="' . get_permalink($recent[">' . $recent["post_title"].'</a></li>';
}
</ul>
[/insert_php]

Teema[muokkaa]

  • Näkyykö jollain kotisivuilla mielenkiintoinen teema? WP-teeman nimen löytää yleensä styles.css -tiedoston alusta. Avaa selaimen "Inspector" eli toiminto, jolla voit tarkastella välilehdellä auki olevan sivun koodia ja siihen liittyviä tiedostoja.
https://codeable.io/find-out-what-theme-plugins-wordpress/
http://scanwp.net

Lisäosat[muokkaa]

VARO: Lisäosa saattaa antaa mahdollisuuden päivittää tiedosto-oikeuksia ja .htaccess tiedostoa. Tämä saattaa aiheuttaa palvelimen juurihakemiston .htaccess -tiedoston "korruptoitumisen" niin, että sivustolle ei pääse, eikä myöskään muihin mahdollisiin sivustolla oleviin ohjelmiin, joita sinne on asennettu. Ei siis kannata antaa muuttaa! Jos kuitenkin painoit ja domain kaatui, ongelman on todennäköisesti .htaccess tiedostossa ja vaikka yrität verrata .htaccess tiedostoa alkuperäiseen ja se näyttää juuri samalta ja tiedoston tiedostoikeus on oikein ja sivustolle ei pääse, asenna varmuuskopiosta alkuperäinen .htaccess tai luo tiedosto uudestaan.

Käännökset[muokkaa]

  • Loco Translate -lisäosa. Ei käännä välttämättä kaikkia lisäosia. Oltava tarkkana, että käännöstiedosto tulee sellaiseen paikkaan, että se ei tuhoudu lisäosaa päivitettäessä. .po-tiedostoa muokataan esim. Poedit tai OmegaT -sovelluksilla.
  • WPML -lisäosa.
  • Child-tiedostoon kääntäminen. Esimerkiksi kun tarvitsee kääntää joitain muutamia kohtia lisäosassa. Esimerkiksi frontendissä näkyviä painiketekstejä. Lähde: UX Themes Docs
add_filter( 'gettext', function ( $strings ) {
	$text = array(
		'Related products' => 'Suomennos',
		'Something else'   => 'Suomennos',
	);
	$strings = str_ireplace( array_keys( $text ), $text, $strings );
	return $strings;
}, 20 );

UltimateMember[muokkaa]

  • Jäsen voi valita näkyykö joku hänen profiilinsa kentistä.
  1. Tee checkbox-kenttä, jossa esim. Piilota puhelinnumero
  2. Aseta puhelinnumero-kentässä ehto, hide if Piilota puhelinnumero contains 1

WP Staging[muokkaa]

  • Kirjautumisongelmat:
    • Access denied. Login first to access this site: Kirjaudu ulos tuotannossa olevasta WP:stä ja kirjaudu sitten tähän "hiekkalaatikkoon" tai käytä toista selainta tuotannossa olevan rinnalla.
  • Asetukset sivu ei näy (2017–2018): RATKAISEMATTA

Lisäosan ohjelmointi (plugin)[muokkaa]

https://codex.wordpress.org/Writing_a_Plugin
https://codex.wordpress.org/Plugin_Resources
http://www.yaconiello.com/blog/how-to-write-wordpress-plugin
http://www.devlounge.net/extras/how-to-write-a-wordpress-plugin

Esimerkkinä Hello Dolly-lisäosa[muokkaa]

Hyvin tehtyihin lisäosiin tutustumalla oppii. Hello Dolly-lisäosa sisältää yhdessä hakemistossa (hello-dolly) kaksi tiedostoa: hello.php ja readme.txt

  • hello.php
<?php
/**
 * @package Hello_Dolly
 * @version 1.6
 */
/*
Plugin Name: Hello Dolly
Plugin URI: https://wordpress.org/plugins/hello-dolly/
Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
Author: Matt Mullenweg
Version: 1.6
Author URI: http://ma.tt/
*/

function hello_dolly_get_lyric() {
	/** These are the lyrics to Hello Dolly */
	$lyrics = "Hello, Dolly
Well, hello, Dolly
It's so nice to have you back where you belong
You're lookin' swell, Dolly
I can tell, Dolly
You're still glowin', you're still crowin'
You're still goin' strong
We feel the room swayin'
While the band's playin'
One of your old favourite songs from way back when
So, take her wrap, fellas
Find her an empty lap, fellas
Dolly'll never go away again
Hello, Dolly
Well, hello, Dolly
It's so nice to have you back where you belong
You're lookin' swell, Dolly
I can tell, Dolly
You're still glowin', you're still crowin'
You're still goin' strong
We feel the room swayin'
While the band's playin'
One of your old favourite songs from way back when
Golly, gee, fellas
Find her a vacant knee, fellas
Dolly'll never go away
Dolly'll never go away
Dolly'll never go away again";

	// Here we split it into lines
	$lyrics = explode( "\n", $lyrics );

	// And then randomly choose a line
	return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] );
}

// This just echoes the chosen line, we'll position it later
function hello_dolly() {
	$chosen = hello_dolly_get_lyric();
	echo "<p id='dolly'>$chosen</p>";
}

// Now we set that function up to execute when the admin_notices action is called
add_action( 'admin_notices', 'hello_dolly' );

// We need some CSS to position the paragraph
function dolly_css() {
	// This makes sure that the positioning is also good for right-to-left languages
	$x = is_rtl() ? 'left' : 'right';

	echo "
	<style type='text/css'>
	#dolly {
		float: $x;
		padding-$x: 15px;
		padding-top: 5px;		
		margin: 0;
		font-size: 11px;
	}
	</style>
	";
}

add_action( 'admin_head', 'dolly_css' );

?>

Nimeäminen, tiedostot ja sijainnit[muokkaa]

  • Nimi
  • Tiedostot
    • Vähintään yksi tiedosto. Lisäksi esim. JavaScript, CSS, kuva ja kielitiedostoja.
lisäosan-nimi.php
yrityksesinimi-lisäosan-nimi.php
  • Sijainti
    • Lisäosa voi sijaita suoraan /wp-content/plugins -hakemistossa tai sen alle tehdyssä lisäosan omassa hakemistossa. Useampi tiedosto varsinkin sijoitetaan omaan lisäosan hakemistoon. Hakemiston nimen ei tarvitse välttämättä olla sama kuin lisäosan php-tiedoston.
    • WP käyttää hakemiston nimeä etsiessään päivityksiä verkosta lisäosaan.
    • Lisäosan alahakemistoja voisivat olla esim. templates, lang/languages, class, assets (js, images, css), core, admin, addons, includes, fonts, framework, frontend, class, lib, overwrite, tools, view
/wp-content/plugins/lisäosan-nimi
  • Turvallisuus
    • Turvallisuuden parantamiseksi php-tiedoston alkuun kannattaa laittaa
/*
* Exit if accessed directly
*/
if ( ! defined('ABSPATH') ) {
	exit;
}
TAI
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
  • Readme.txt -tiedosto
    • Jos jaat lisäosan WP:n maailmanlaajuisessa lisäosahakemistossa, on siihen sisällytettävä readme.txt -tiedosto. Aseta se samaan hakemistoon kuin lisäosan php-tiedosto. Ohjeet: https://wordpress.org/plugins/about/readme.txt
    • Hello Dolly readme.txt on seuraava:
=== Hello Dolly ===
Contributors: matt
Requires at least: 3.0
Stable tag: 1.6
Tested up to: 4.6

This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong.

== Description ==

This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.

Tiedoston otsikointi[muokkaa]

https://developer.wordpress.org/plugins/the-basics/header-requirements/
/**
 * @package Hello_Dolly
 * @version 1.6
 */
/*
Plugin Name: Hello Dolly
Plugin URI: https://wordpress.org/plugins/hello-dolly/
Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.
Author: Matt Mullenweg
Version: 1.6
Author URI: http://ma.tt/
*/

Lisäosan ohjelmointi[muokkaa]

  • Word Press Plugin Hooks. 1) Filter hook 2) Action hook
    • https://codex.wordpress.org/Plugin_API
    • Näitä WP suorittaa kun lisäosa on otettu käyttöön.
    • Filter hook. WP käy automaattisesti ja jatkuvasti läpi lisäosahakemistoja ja katsoo täytyykö jonkun rekisteröity funktio suorittaa. Funktio saa näin jotain toimintoja aikaiseksi WordPressissä sen itse tai käyttäjän toimesta. Käytössä olevien lisäosien funktiot on siis rekisteröity WP:n tietoon. WP siis tietää mitä funktioita mistäkin lisäosista löytyy.
    • Asetetaan php-sivulla: add filter( 'lisäosan_nimi_get_name' );
    • Action hook.
    • Tarvittaessa WP:n kehittäjät voivat lisätä WP:n koodiin kohdan, jossa tapahtuu filter tai action hook.
    • Asetetaan php-sivulla: add action( 'lisäosan_nimi_get_name' );
  • Template Tags
  • php
    • php-tiedosto alkaa <?php jonka jälkeen tulee otsikkotiedot ja sitten funktiot
  • Funktiot
    • Kaikkien käyttämiesi funktioiden tulee olla ainutkertaisia eli samoja ei löydy WP:n koodista, muista lisäosista tai teemoista! Kaikissa lisäosan funktioissa on hyvä olla sama ainukertainen etuliite (prefix).
    • php -tiedostossa on siis funktioita, jota seuraa add_action
// Now we set that function up to execute when the admin_notices action is called
function lisäosan_nimi_get_name() { ohjelmakoodi }
add action( 'lisäosan_nimi_get_name' );
add filter( 'lisäosan_nimi_get_name' , 'lisäosan_nimi_get_me');

esim. Hello Dollyssä: 
add_action( 'admin_head', 'dolly_css' );
add_action( 'admin_notices', 'hello_dolly' );
  • Tiedostopolku lisäosan sisällä
define( 'OMALISÄOSANIMI_PATH', plugin_dir_path( __FILE__ ) ); // määritellään polku tiedoston alussa
require OMALISÄOSA_PATH . 'core/class-lisäosa.php';
  • Tiedon tallentaminen tietokantaan
    • Tietokantaan tallentaminen on raskasta, noutaminen kevyempää. Pyri tallentamaan vain pakollinen ja noutamaan vain välttämätön!!!
    • Käytä WP API:ja SQL:n sijaan. Esim. get_posts() tai WP_Query() eikä SELECT * FROM {$wpdb->prefix}_posts
    • 1) Options Mechanism. Pienen määrän tallentamiseen suhteellisen staattista ja pysyvää tietoa. Esim. kun lisäosa otetaan käyttöön ja kun käyttäjä asettaa perusasetukset.
      • Asetussivun luominen
      • Voi olla strings, arrays tai PHP-objekteja. Option-nimet ovat merkkijonoja ja niiden tulee olla ainutkertaisia sekaantumisen välttämiseksi. Optionien määrä tulisi pitää mahdollisimman vähäisenä ja käyttää sen sijaan taulukoita (array).
      • add_option($name, $value, $deprecated, $autoload);
        • tallentaa optionin arvot tietokantaan
        • $name on pakollinen merkkijono eli optionin nimi.
        • $value on valinnainen eli optionin arvo, joka tallennetaan. Oletuksena tyhjä.
        • $deprecated on merkkijono ja ei ole enää käytössä ???
        • $autoload on valinnainen, oletuksena 'yes', jolloin asetus noudetaan automaattisesti funktiolla wp_load_alloptions
      • get_option($option);
      • update_option($option_name, $newvalue);
        • päivittää tai luo option-arvon tietokantaan.
        • $option_name on pakollinen merkkijono eli optionin nimi
        • $newvalue on pakollinen merkkijono, talulukko tai objekti eli uusi optionin arvo.
    • 2) Post Meta (Custom Fields). Sopii tiedolle, joka liittyy yksittäisiin artikkeleihin (post), sivuihin (page) tai liitteisiin (attachment). Esim. post_meta Function Examples ja add_post_meta()
    • 3) Custom Taxonomy. Artikkeleiden, kommenttien, käyttäjien, käyttäjän muokattavien arvojen luettelointiin. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies
    • 4) Uusi tietokannan taulu. Tiedolle, joka ei liity artikkeleihin, sivuihin, kommentteihin tai liitteisiin. Tiedolle joka ajan myötä kasvaa. Vältä uusien taulujen lisäämistä! https://codex.wordpress.org/Creating_Tables_with_Plugins
      • Älä käytä tauluissa etuliitettä wp_ vaan sen sijaan $wpdb->prefix
load_plugin_textdomain('lisäosan-nimi', false, basename( dirname( __FILE__ ) ) . '/languages' );
Tehdään käännettäväksi  __('Hello my friend!','lisäosan-nimi');
Selaimelle tulostettavaksi _e('Hello my friend!','lisäosan-nimi');
<h1><?php _e('Asetukset', 'lisäosan-nimi'); ?></h1>

  • Virheiden etsintä
    • Lisää tiedostoon wp-config.php koodi define('WP_DEBUG', true); ja kokeile kaikki lisäosan toimnnot ja korjaa kaikki virheet.
  • Käytä wp_enqueue_style() ja wp_enqueue_script() funktioita.
  • Uninstall.php -tiedosto ei ole pakollinen.

Lisäosan päivitys[muokkaa]

https://codex.wordpress.org/Writing_a_Plugin kohta Updating Your Plugin