Wordpress
Diese Seite ist veraltet, da ich aktuell kein Wordpress mehr einsetze.
Diese Seite beschreibt den Einsatz von Wordpress als Blogging-System. Wordpress ist Grundlage für das KRÜDEWAGEN BLOG.
Allgemeines
- Neuerungen in Wordpress 3.0 (Theme, Multisites): siehe iX 09/10 S.52
- Wordpress erweitern und optimieren: siehe c't 18/14 S.170
- Wordpress für Suchmaschinen optimieren (SEO): siehe c't 11/15 S.164
- heise+ | WordPress 6.7: Moderne Websites besonders einfach bauen
Themes
- 16 kostenlose WordPress-Themes (Dr. Web Magazin)
- Fresh and Free WordPress Themes Released In December 2012 (noupe)
- Die 100+ besten kostenlosen WordPress-Themes des Jahres 2013 (Dr. Web Magazin)
Themes erstellen
- Template-Engine PHPTAL: siehe iX 12/09 S.152
- Um bei Update selbst geänderte Themes nicht zu überschreiben, kann ein Child-Theme erstellt werden unter wp-content/themes/ mit Verweis auf Eltern-Theme in style.css.
- siehe c't 18/12 S.156
- siehe c't 03/13 S.158
- http://www.myblogtrainer.de/child-theme-twenty-twelve-erstellen/
- Eigenes Theme entwickeln: siehe c't 25/15 S.178, Beispiel-Code
Themes-Sammlungen
- http://wordpress.org/extend/themes
- http://www.nattywp.com
- http://topwpthemes.com
- http://www.freewpthemes.net
- http://themes.wordpress.net/
- http://codex.wordpress.org/Using_Themes/Theme_List
- http://www.plaintxt.org/links/
- http://wpthemes.info/
- http://wpgarden.com/
- http://andreasviklund.com/
MistyLook 2
Deutsche Übersetzung von mir
- Download des Themes: http://www.kruedewagen.de/download/mistylook-101_de.tar.gz
Hinweis: Umlaute wurden direkt mit ö,ä,ü etc. in den Quelltext geschrieben. Das sollte jeder vernünftige Browser darstellen können, zumal die Seiten UTF-8 kodiert ausgeliefert werden.
Deutsche Übersetzung (v1) siehe auch Blog http://www.eisregen1986.fs4y.be/blog/wordpress/wordpress-themes/mistylook-de/
Meine speziellen Anpassungen des MistyLook 2 Themes
- Sidebar
- In sidebar.php habe ich die Reihenfolge der Einträge verändert und den Standard-Kalender eingefügt mittels
<?php get_calendar(); ?>
- Startseite hinzugefügt
<li <?php if(is_home()){echo 'class="current_page_item"';}?>><a href="<?php bloginfo('siteurl'); ?>/" title="Home">Startseite</a></li> <?php wp_list_pages('title_li=' ); ?>
- Bild misty.jpg
- Größe: 569x200 px (780px ist die Gesamtbreite der Seite)
- Bild profile.jpg
- Größe: 100x74 px
- style.css
- Änderung "height" an tatsächliche Höhe des eigenen Bildes
#headerimage { clear: both; background: #fff url(img/misty.jpg) no-repeat center 0px; margin: 10px; color: #fff; /*height: 270px;*/ height: 200px; }
- Änderung der margin für Unterseiten in der Navigationbar
#sidebar ul ul { list-style:none; margin:0em 0 0 1em; padding:0; }
- Hinzufügen von diversen wp-calendar Styles
- Änderung der Schriftgröße im Body auf 85%.
- favicon hinzugefügt header.php:
<link rel="shortcut icon" href="/favicon.ico" />
- Fix in index.php
<?php the_content('Den ganzen Beitrag lesen »'); ?> <?php wp_link_pages(); // Fix: See http://forums.wpthemes.info/comments.php?DiscussionID=2 ?>
MistyLook 3
Weblinks
Deutsche Übersetzung
Seit MistyLook 3.6 kann man Sprachpakete benutzen, so dass eine Übersetzung der Sourcen nicht mehr nötig ist. Siehe deutsches Sprachpaket.
Beispiel-Website mit diesem Theme in deutscher Sprache: KRÜEDEWAGEN BLOG
Anmerkungen für ältere MistyLook Versionen:
- Download des Themes MistyLook Version 3.0: http://www.kruedewagen.de/download/mistylook3_de.tar.gz
- Siehe auch hier ein paar Infos über zusätzlichen DE-Anpassungen.
Meine speziellen Anpassungen des MistyLook 3 Themes
Gütig für Version 3.6.x und 3.7.x, siehe hier für zusätzliche Anpassungen älterer Versionen.
Folgende Anpassungen habe ich noch zusätzlich vorgenommen, welche in der o.g. Übersetzung nicht enthalten sind.
- comments.php
- Wenn man nicht eingeloggt ist, rutscht die Sidebar sehr oft vom Rand rechts unten den Artikel (zumindest seit Wordpress 3.x). Das liegt wohl an einem Bug in MistyLook, siehe auch [1] und Prüfung per validator.w3.org. Das </div>-Tag in Zeile 86 muss zwischen die beiden endif verschoben werden:
<?php do_action('comment_form', $post->ID); ?> </form> <?php endif; // If registration required and not logged in ?> </div> <?php endif; // if you delete this the sky will fall on your head ?>
- sidebar.php
- In sidebar.php habe ich die Reihenfolge der Einträge verändert und den Standard-Kalender bzw. EventCalendar eingefügt mittels
<?php get_calendar(); ?>
bzw.
<li class="sidebox"> <?php ec3_get_calendar(); ?> </li> <li class="sidebox"><h2>Termine</h2> <?php ec3_get_events(5); ?> </li>
- Home hinzugefügt in "Pages"
<ul> <li <?php if(is_home()){echo 'class="current_page_item"';}?>><a href="<?php bloginfo('siteurl'); ?>/" title="<?php _e('Home','ml');?>"><?php _e('Home','ml');?></a></li> <?php wp_list_pages('title_li=' ); ?> </ul>
Für Countdown-Plugin unterhalb des Calendars:
<?php if(is_home()) { ?> <li class='sidebox'> <?php cc_countdown('05/08/2010 15:00','Kartenabend Countdown','FALSE'); ?> </li> <?php } ?>
- Bild misty.jpg
- Größe: 569x200 px (780px ist die Gesamtbreite der Seite)
- Bild profile.jpg
- Größe: 100x74 px
- style.css
- Abstand der Listenpunkte in der Sidebar
#sidebar li { margin-bottom:1px; }
- Hinzufügen von diversen wp-calendar Styles
- favicon hinzugefügt header.php:
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> <link rel="shortcut icon" href="/favicon_blog.ico" />
- functions.php
- Da mein Blog keine Description hat, habe ich den Punkt entfernt:
<?php bloginfo('description');?><br/>
- archive.php und search.php
- Da das Theme auf Archiv- und Search-Seiten nur einen kurzen Extrakt der Beiträge liefert, z.B. ohne Links und Bilder, habe ich diese Dateien verändert.
alt:
<?php the_excerpt(); ?>
neu:
<?php the_content(); ?>
- auskommentiert
<?php _e('Read Full Post »','ml');?>
- mögliche Farbanpassungen in style.css, am Beispiel blau statt grün:
- color: #16459a statt #265e15
- background-color (eventcalendar): #d9e4f6 statt #cae7c1
wp-andreas09
Siehe http://www.zyblog.de/2006/06/14/deutsche-sprachdatei-fuer-wordpress-theme-wp-andreas09/
Weitere interessante Themes
Plugins
Eine Liste von Plugin-Portalen gibt es hier.
- Photo-Blogs / Gallerien
- http://codex.wordpress.org/Photoblogs_and_Galleries
- Yet another photoblog
- Coppermine
- JAlbum Badge Blog Widget, siehe auch jalbum.net.
- Editoren
- WYSIWYG Plugin For Wordpress (nutzt ebenfalls TinyMCE, plus Bild-Browser, scheint am besten zu sein), Add-Ons, Table Add-On Discussion
- TinyMCE Installation und Beispiele
- WysiwygPro WordPress Plugin (kommerziell, gute Kritiken)
- Advanced WYSIWYG Editor
- Dean’s FCKEditor for WordPress plugin
- Tabellen-Patch für TinyMCE
- Diskussionen
- Bilder
- Kalender
- Umfrage, Surveys, Quiz
- Postings
- Seiten
- RSS
- Countdown
- Externe Tools
- Videos (YouTube etc.)
- WordPress-Youtube-Plugin
- Wordpress Video Plugin, http://www.daburna.de/dokuwiki/doku.php/instruction
- Simple Flash Video (mit JW FLV Player). :Beispiel für ein direkt in die Webseite eigebettetes Video:
[video filename=/blog/wp-content/uploads/video.mp4 shadowbox=off autostart=off title=Priest image= /]
- Beispiel Audio:
[video filename=http://chaosradio.ccc.de/archive/chaosradio_express_129.mp3 height=180 width=320 shadowbox=off autostart=off title=CRE129 /]
- Audio
- Beispiel:
[audio:http://chaosradio.ccc.de/archive/chaosradio_express_129.mp3]
- Authentifizierung / Zugangsschutz
- Angsuman’s Authenticated WordPress Plugin - Password Protection for Your WordPress Blog
- Fix für Weiterleitung passwortgeschützter Seiten
- 2FA
- https://de.wordpress.org/plugins/two-factor/
- https://de.wordpress.org/plugins/two-factor-authentication/ (Backup-Codes nur in Premium)
- https://de.wordpress.org/plugins/miniorange-2-factor-authentication/ (Backup-Codes nur in Premium)
- Analyse / Statistiken
- Open Web Analytics (OWA)
- Firefox Extension
- Lizenzen
- Mail
- WP Mail SMTP, see also [2]
- Captchas (Anti-Spam)
- Mobile Web
- Social Web
- Eigenes soziales Netzwerk mit BuddyPress: siehe c't 20/10 S.162
- http://ppfeufer.de/wordpress-plugin/2-click-social-media-buttons/ (bei IPv6 muss man ggf. dieses Plugin einmalig kurz deaktivieren, dann wieder aktivieren)
- Kontaktformulare
- Backup
- WP-Database Backup
- BackupWordpress
- Chaching
- Fonts
- Online-Shop
- siehe iX 10/15 S.88
- WooCommerce
- Themes und Plugins aktualisieren nach einem "git push" mittels Webhook mit GitHub Updater, funktioniert auch mit GitLab
- Newsletter (mit Subscribing): https://www.thenewsletterplugin.com/documentation/subscription/subscription/
- Markdown / Git / GitLab Integration
Allgemeine Konfiguration
Pingbacks und Trackbacks
Handling
Siehe
- Meine Hilfe
- Trackbacks
- Trackback vs. Pingback
- http://codex.wordpress.org/Introduction_to_Blogging#Trackbacks
- http://oftgestelltefragen.wordpress.com/2006/07/01/was-ist-ein-pingback/
- http://oftgestelltefragen.wordpress.com/category/trackback/
Genehmigen
Pingbacks und Trackbacks werden bei der Genehmigung fast wie normale Kommentare behandelt.
- Mit der globalen Einstellung "muss er von einem Administrator genehmigt werden (unabhängig von allen folgenden Einstellungen)" schaltet man den Genehmigungsprozess für Pingbacks und Trackbacks ein.
- Die beiden weiteren globale Parameter unter "Bevor ein Kommentar erscheint" scheinen jedoch keine Auswirkung zu haben.
Avatar
Für Kommentare und den Admin-Bereich:
- Einstellungen › Diskussion
- http://en.gravatar.com/
Für Postings:
Spezielle Konfiguration und Anpassungen
Apache
Anpassung für Links der Art "/2006/10/31/sample-post/":
<Directory "<pfad zum blog>"> Options FollowSymLinks AllowOverride AuthConfig Order allow,deny Allow from all RewriteEngine On RewriteBase /blog/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </Directory>
URL
Die URLs müssen in Wordpress so eingestellt sein, dass keine URL benutzt wird, von der aus bereits eine Frame-Weiterleitung gemacht wird. Die in Wordpress konfigurierten URLs müssen also eine direkte URL sein.
Dann können im Browser alle URL genutzt werden, von denen eine Frame-Weiterleitung gemacht wird. Dabei bleibt die URL erhalten.
Hinweis: HTTP redirect noch nicht getestet.
Vorschaubilder / Thumbnails
Änderung der Größe siehe [3].
Das habe ich geändert, um auch für Bilder bis 8 Megapixel ein Thumbnail zu erzeugen in Maximalgröße 400x300:
- wp-admin/admin-functions.php
function wp_shrink_dimensions($width, $height, $wmax = 400, $hmax = 300) {
- wp-admin/inline-uploading.php
if ( $imagedata['width'] * $imagedata['height'] < 8 * 1024 * 1024 ) { if ( $imagedata['width'] > 400 && $imagedata['width'] >= $imagedata['height'] * 4 / 3 ) $thumb = wp_create_thumbnail($file, 400); elseif ( $imagedata['height'] > 300 ) $thumb = wp_create_thumbnail($file, 300)
Lokalisierungsfehler berichtigen
- wp-includes/comment-functions.php
function comments_popup_link($zero='No Comments', $one='1 Comment', $more='% Comments', $CSSclass='', $none='Kommentare deaktiviert')
Plugins
WYSI-Wordpress
- Einstellungen in Wordpress gemäß Anleitung im Plugin (readme.txt)
- WYSIWYG in Wordpress deaktivieren (Einstellungen->Schreiben (nur WP 2.0) und im Profil)
- "Organisiere meine Uploads in monats- und jahresbasierten Ordnern" deaktivieren (Einstellungen->Verschiedenes)
- Anpassungen an wp-admin/iimage-browser.php
- Alle $HTTP_POST_FILES in $_FILES ändern (PHP5)
- Berechtigungen
chmod($thumbpath, 0660);
- Default-Wert für JPEG Qualität von 70 auf 85:
value=\"85\"
- Default-Thumbnail Größe: 400
- Deutsche Sprache
- de aktivieren in wordpress.js
language : "de",
- wp-content/plugins/Wysi-Wordpress/plugins/imagebrowser/editor_plugin.js
title="Bild hochladen/einfügen (erweitert)"
- PHP
- Für große Bilder (ab ca. 7 Megapixel) muss memory_limit in php.ini auf >32MB erhöht werden
- Table-Plugin
- Table-Plugin installieren (siehe Links)
- wordpress.js
plugins : "table,emotions,imagebrowser,dictionary,wordpress" theme_advanced_disable : "table entfernen" theme_advanced_buttons2_add : "....,separator,table"
Sicherheit
- http://blog.mauline.org/2006/02/02/wordpress-sicher-betreiben/
- http://www.tamagothi.de/2007/09/23/datenschutzproblem-in-wordpress-23/
- Wordpress Exploit Scanner
- WP Vulnerability Scanner (online) - blogsecurity.net
- wordpres-sicherer-machen
- siehe LU 01/09 S.51
- WPScan Sicherheitsscanner für Wordpress
SSL
Seit WP 2.6 kann das Login und der Admin-Bereich per SSL verschlüsselt werden, siehe:
Dazu müssen einige Konstanten in wp-config.php definiert werden. Die Keys kann man z.B. hier erzeugen.
define('AUTH_KEY', 'xxyyzz'); define('SECURE_AUTH_KEY', ''aabbcc); define('LOGGED_IN_KEY', 'ffgghh'); define('FORCE_SSL_ADMIN',true); define('FORCE_SSL_LOGIN',true);
Bekannte Probleme
- Drag and Drop von Bildern im Standard-Editor mit Firefox
- Falls das Blog nicht im Root-Verzeichnis liegt (also z.B. in /blog), wird das /blog nicht mitgenommen. Siehe [4],[5]
- Abhilfe: "Rechte Maus -> Zum Editor senden" verwenden
Tipps & Tricks
Diverse Tipps und Tricks
Neues in WP 3.x
- Shortlinks mit WordPress 3.0
- Neue Schlüssel ab WordPress 3.0 für die Konfiguration
- Multi-Blog-Funktion in WordPress 3.0 aktivieren
Erweiterte Editor-Optionen in WP 2
MySQL Character Set (UTF-8)
Tutorials
- http://wordpresstraining.com (auch als Video)
Kommentare
Kommentare von älteren Posts schließen:
UPDATE posts SET comment_status = 'closed', ping_status = 'closed' WHERE post_status = 'publish' AND post_date < '2013-01-01'; UPDATE posts SET comment_status = 'registered_only', ping_status = 'closed' WHERE post_status = 'publish' AND post_date < '2013-01-01';
Farbprofile
- siehe c't 23/15 S.176
Update
Was übernommen werden muss
Bei einem Update von Wordpress müssen folgende Dateien und Verzeichnisse aus dem alten Pfad kopiert werden, wenn das Update nicht durch einfaches Überkopieren gemacht wird:
wp-config.php wp-content/uploads/ wp-content/themes/ (nur die zusätzlichen) wp-content/plugins/ (nur die zusätzlichen)
Update einer Standard-Installation
Beispiel für Einzelschritte mit DIR gleich dem Installationsverzeichnis.
su -
DIR=wp2
cd /srv/www/htdocs
rm -rf $DIR.old
cp -rp $DIR $DIR.old
chmod 700 $DIR.old
unzip /opt/pkg/wordpress/wordpress_36-de.zip
chown -R wwwrun:root wordpress
cd wordpress
cp -p ../$DIR/wp-config.php .
cp -rp ../$DIR/wp-content/uploads wp-content/
cp -rp ../$DIR/wp-content/themes/mistylook* wp-content/themes/
mv wp-content/plugins wp-content/plugins.orig
cp -rp ../$DIR/wp-content/plugins wp-content/
cp -rp wp-content/plugins.orig/* wp-content/plugins/
rm -rf wp-content/plugins.orig
Optional alte Standard-Themes wiederherstellen, die nicht mehr mitgeliefert werden:
cp -rp ../$DIR/wp-content/themes/twentytwelve wp-content/themes/
Extras
Ggf. kommen noch folgende Dateien und Verzeichnisse hinzu (z.B. beim Kartenclub Blog):
.htaccess favicon.ico bilder/ webalizer/ robots.txt eb-wp-pass.php
Die Einzelschritte dazu nach dem Verschieben der Plugins:
cp -p ../$DIR/.htaccess .
cp -p ../$DIR/favicon.ico .
cp -p ../$DIR/robots.txt .
cp -rp ../$DIR/bilder .
cp -rp ../$DIR/webalizer .
cp -rp ../$DIR/eb-wp-pass.php .
Aktivieren der neuen Software
cd ..
rm -rf $DIR && mv wordpress $DIR
Upgrade der Datenbank
Danach Aufruf der Upgrade-Seite http://meinsuperduperblog.de/wp2/wp-admin/upgrade.php.
Siehe auch Upgrade und Upgrading WordPress.
Sprachdateien
Ab WP 2.5 liegen die Sprachdateien in wp-content/languages. wp-includes/languages kann dann gelöscht werden.
Tools und Dienste
- Mit Postbot.co kann man Fotos in einem Rutsch in ein WP-Blog übertragen: siehe c't 12/14 S.168
- Wordpress-Management-Tools: LM 04/13 S.58
Alternativen
- Pivot (ohne DB)
- Movable Type
- Serendipity, siehe auch LM 05/09 S.77
- http://www.mitchelaneous.com/2007/09/19/9-wordpress-alternatives/
- Microblogging
Weblinks