Sidebar
ein-/ausblenden

WordPress Plugin für mehr Flexibilität beim Schreiben

Plugin für WordPress SEO

Anzeige

WP Adventskalender 24
Heute ist er nun da, der letzte Tag im Kalender und der letzte Tag, der mich zwingt, jeden Tag einen Beitrag zu veröffentlichen. Nicht selten habe ich über Nacht noch einen kleinen Beitrag geschrieben um die Leser am kommenden Morgen mit einem neuen Türchen zu beglücken. Nicht nur Kinder mögen die Überraschung am Morgen beim Öffnen eines neuen Türchens. Für mich ist nun erst mal Pause, andere Themen sind wichtiger und nur wenige werden vermutlich diesen Beitrag hier lesen; ist doch heute Weihnachten. Mir bleibt nur noch zu sagen:
Alles liebe und Gute, die herzlichsten Wünsche, ein friedliches Weihnachtsfest und einen guten Rutsch in das neue Jahr wünsche ich allen Lesern, allen Kunden, allen netten Kontakten und jedem, der irgendwie Mensch ist und mit mir zu tun hatte. Ich freue mich auf ein neues Jahr mit euch und harre der Dinge, die uns im neuen Jahr erreichen werden.

Es weihnachtet

Als kleines Präsent zum heiligen Abend heute habe ich euch ein Plugin erstellt, was euch zum einen zusätzliche Felder in den Bereich Schreiben von WordPress bringt, was euch zeigt, wie einfach man den Bereich erweitern kann und was nach belieben von euch genutzt werden darf.

Das Plugin bringt 3 neue Felder in einer Metabox mit:

  • Untertitel - wie der Name schon sagt, eine Zeile ohne Formatierung in der Ausgabe
  • Zusatzinformationen - ein vollwertiger Editor, ebenso kann man jede Art von Attachments hinzufügen, also fast gleich dem Content-Editor.
  • Listdaten - Hier wird ermöglicht, dass man pro Zeile einen Inhalt pflegt und jede Zeile als List-Element ausgeben wird, ungeordnete Liste ul

Screenshot im Edit-Bereich von WordPress

Jedes dieser Felder kann gezielt im Template des Themes eingesetzt werden, hat also einen Template Tag, der die Ausgabe steuert. Nur wenn es in diesem Feld Daten gibt, dann werden sie auch ausgegeben. Im folgenden ein Beispiel, der die drei neuen Felder ausgibt.


<div <?php post_class() ?> id="post-<?php the_ID(); ?>">

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

	<h3><?php if ( function_exists('the_DifferentTypeFacts') ) the_DifferentTypeFacts($post->ID, 'heading'); ?></h3>

	<div class="entry">

		<?php the_content('<p class="serif">Read the rest of this entry &raquo;</p>'); ?>

		<?php if ( function_exists('the_DifferentTypeFacts') ) the_DifferentTypeFacts($post->ID, 'additional-info'); ?>

		<?php if ( function_exists('the_DifferentTypeFacts') ) the_DifferentTypeFacts($post->ID, 'listdata'); ?>

Screenshot im Frontend von WordPress

Das Plugin soll als Vorlage dienen, wer also mag, der passt es an und schafft eine Oberfläche, in der sich die Autoren wohl fühlen, keine Pflege der benutzerdefinierten Felder.

Das Plugin sorgt dafür, dass die Metaboxen "Benutzerdefinierte Felder" und "Trackbacks" nicht mehr da sind (remove_meta_box()); auch das als Beispiel für die Nutzung. Zu jedem der genutzten Code-Schnipsel im Plugin gibt es hier im Blog einen Beitrag und so sollte man damit klar kommen. Im folgenden der Code ohne Zusatzfiles und im Anschluss das Plugin als Download, inkl. readme, Sprachfiles für deutsche User und die nötigen Scripte.


<?php
/**
 * @package Different Type
 * @author Frank B&uuml;ltge
 * @version 0.1
 */

/*
	Plugin Name: Different Type
	Plugin URI: http://bueltge.de/
	Description: Add different types to posts
	Author: Frank B&uuml;ltge
	Version: 0.1
	License: GPL
	Author URI: http://bueltge.de/
	Last change: 24.12.2009 00:00:00
*/

/**
 * Example for use outside the loop:
 * <?php the_DifferentTypeFacts($post->ID); ?>
 * @param $id Integer - Post-ID
 * @param $type String - heading, additional-info, listdata (default is ''-empty)
 *
 * Example: <?php the_DifferentTypeFacts($post->ID, 'heading'); ?>
 */

//avoid direct calls to this file, because now WP core and framework has been used
if ( !function_exists('add_action') ) {
	header('Status: 403 Forbidden');
	header('HTTP/1.1 403 Forbidden');
	exit();
}

if ( function_exists('add_action') ) {
	//WordPress definitions
	if ( !defined('WP_CONTENT_URL') )
		define('WP_CONTENT_URL', get_option('siteurl') . '/wp-content');
	if ( !defined('WP_CONTENT_DIR') )
		define('WP_CONTENT_DIR', ABSPATH . 'wp-content');
	if ( !defined('WP_PLUGIN_URL') )
		define('WP_PLUGIN_URL', WP_CONTENT_URL.'/plugins');
	if ( !defined('WP_PLUGIN_DIR') )
		define('WP_PLUGIN_DIR', WP_CONTENT_DIR.'/plugins');
	if ( !defined('PLUGINDIR') )
		define( 'PLUGINDIR', 'wp-content/plugins' ); // Relative to ABSPATH.  For back compat.
	if ( !defined('WP_LANG_DIR') )
		define('WP_LANG_DIR', WP_CONTENT_DIR . '/languages');

	// plugin definitions
	define( 'FB_DT_BASENAME', plugin_basename(__FILE__) );
	define( 'FB_DT_BASEDIR', dirname( plugin_basename(__FILE__) ) );
	define( 'FB_DT_TEXTDOMAIN', 'different-types' );
}

if ( !class_exists( 'DifferentType' ) ) {
	class DifferentType {

		// constructor
		function DifferentType() {

			if (is_admin() ) {
				add_action( 'admin_init', array(&$this, 'on_admin_init') );
				add_action( 'wp_insert_post', array(&$this, 'on_wp_insert_post'), 10, 2 );
				add_action( 'init', array(&$this, 'textdomain') );
				register_uninstall_hook( __FILE__, array(&$this, 'uninstall') );
				add_action( "admin_print_scripts-post.php", array($this, 'enqueue_script') );
				add_action( "admin_print_scripts-post-new.php", array($this, 'enqueue_script') );
				add_action( "admin_print_scripts-page.php", array($this, 'enqueue_script') );
				add_action( "admin_print_scripts-page-new.php", array($this, 'enqueue_script') );
			}
		}

		// active for multilanguage
		function textdomain() {

			if ( function_exists('load_plugin_textdomain') )
				load_plugin_textdomain( FB_DT_TEXTDOMAIN, false, dirname( FB_DT_BASENAME ) . '/languages' );
		}

		// unsintall all postmetadata
		function uninstall() {

			$all_posts = get_posts('numberposts=0&post_type=post&post_status=');

			foreach( $all_posts as $postinfo) {

				delete_post_meta($postinfo->ID, '_different-types');

			}
		}

		// add script
		function enqueue_script() {
			wp_enqueue_script( 'tinymce4dt', WP_PLUGIN_URL . '/' . FB_DT_BASEDIR . '/js/script.js', array('jquery') );
		}

		// admin init
		function on_admin_init() {

			if ( !current_user_can( 'publish_posts' ) )
				return;

			add_meta_box( 'hotel_helper',
									__( 'Different Types', FB_DT_TEXTDOMAIN ),
									array( &$this, 'meta_box' ),
									'post', 'normal', 'high'
									);

			// remove meta box for trackbacks
			remove_meta_box('trackbacksdiv', 'post', 'normal');
			// remove meta box for custom fields
			remove_meta_box('postcustom', 'post', 'normal');
		}

		// check for preview
		function is_page_preview() {
			$id = (int)$_GET['preview_id'];
			if ($id == 0) $id = (int)$_GET['post_id'];
			$preview = $_GET['preview'];
			if ($id > 0 && $preview == 'true') {
				global $wpdb;
				$type = $wpdb->get_results("SELECT post_type FROM $wpdb->posts WHERE ID=$id");
				if ( count($type) && ($type[0]->post_type == 'page') && current_user_can('edit_page') )
					return true;
			}
			return false;
		}

		// after save post, save meta data for plugin
		function on_wp_insert_post($id) {
			global $id;

			if ( !isset($id) )
				$id = (int)$_REQUEST['post_ID'];
			if ( $this->is_page_preview() && !isset($id) )
				$id = (int)$_GET['preview_id'];

			if ( !current_user_can('edit_post') )
				return;

			if ( isset($_POST['dt-heading']) && $_POST['dt-heading'] != '' )
				$this->data['heading'] = esc_attr( $_POST['dt-heading'] );
			if ( isset($_POST['dt-additional-info']) && $_POST['dt-additional-info'] != '' )
				$this->data['additional-info'] = $_POST['dt-additional-info'];
			if ( isset($_POST['dt-listdata']) && $_POST['dt-listdata'] != '' )
				$this->data['listdata'] = esc_attr( $_POST['dt-listdata'] );

			if ( isset($this->data) && $this->data != '' )
				update_post_meta($id, '_different-types', $this->data);
		}

		// load post_meta_data
		function load_post_meta($id) {

			return get_post_meta($id, '_different-types', true);
		}

		// meta box on post/page
		function meta_box($data) {

			$value = $this->load_post_meta($data->ID);
			?>
			<table id="dt-page-definition" width="100%" cellspacing="5px">
				<tr valign="top">
					<td style="width:20%;"><label for="dt-heading"><?php _e( 'Subtitle:', FB_DT_TEXTDOMAIN ); ?></label></td>
					<td><input type="text" id="dt-heading" name="dt-heading" class="heading form-input-tip" size="16" autocomplete="off" value="<?php echo $value['heading']; ?>" tabindex="6" style="width:99.5%"/></td>
				</tr>
				<tr valign="top">
					<td><label for="dt-additional-info"><?php _e( 'Additional information:', FB_DT_TEXTDOMAIN ); ?></label></td>
					<td><textarea cols="16" rows="5" id="dt-additional-info" name="dt-additional-info" class="additional-info form-input-tip code" size="20" autocomplete="off" tabindex="6" style="width:90%"/><?php echo wpautop( $value['additional-info'] ); ?></textarea>
						<table id="post-status-info" cellspacing="0" style="line-height: 24px;">
							<tbody>
								<tr>
									<td>&nbsp;</td>
									<td>&nbsp;</td>
								</tr>
							</tbody>
						</table>
					</td>
				</tr>
				<tr valign="top">
					<td><label for="dt-listdata"><?php _e( 'Listdata:', FB_DT_TEXTDOMAIN ); ?></label></td>
					<td><textarea cols="16" rows="10" id="dt-listdata" name="dt-listdata" class="listdata form-input-tip" size="20" autocomplete="off" tabindex="6" style="width:99.5%"/><?php echo $value['listdata']; ?></textarea><br /><small><?php _e( 'One list per line', FB_DT_TEXTDOMAIN ) ?></small></td>
				</tr>
			</table>
			<?php
		}

		// return facts incl. markup
		function get_DifferentTypeFacts($id, $type, $value) {

			if (!$value)
				return false;
			if ( $type == '' )
				return false;

			if ( 'heading' == $type && '' != $value['heading'] )
				return $value['heading'];
			if ( 'additional-info' == $type && '' != $value['additional-info'] )
				return wpautop( wptexturize($value['additional-info']) );
			if ( 'listdata' == $type && '' != $value['listdata'] ) {
				$return = '';
				$listdatas = preg_split("/\r\n/", $value['listdata'] );

				foreach ( (array) $listdatas as $key => $listdata ) {

					$return .= '<li>' . trim($listdata) . '</li>';

				}
				return '<ul>' . $return . '</ul>'. "\n";
			}
		}

		// echo facts, if exists
		function DifferentTypeFacts($id, $type, $string) {

			if ( $id ) {
				$value = $this->load_post_meta($id);

				echo $this->get_DifferentTypeFacts($id, $type, $value);
			}
		}

	} // End class

	// instance class
	$DifferentType = new DifferentType();

	// use in template
	function the_DifferentTypeFacts($id, $type = '', $string = '') {
		global $DifferentType;

		$DifferentType->DifferentTypeFacts($id, $type, $string);
	}

} // End if class exists statement
?>

Download als zip-Datei: different-type.zip - 40 kByte

Ich wünsche viel Spass damit und vielleicht wird das einen oder andere Projekt mit WordPress damit in diesem Bereich ein wenig klarer und logischer für die Autoren.

42 Kommentare zu „WordPress Plugin für mehr Flexibilität beim Schreiben“

  1. 1
    Kommentar von Uwe König

    Hallo Frank,

    ich wünsche Dir auch Frohe Weihnachten und ein glückliches Neues Jahr !

    glg
    Uwe

  2. 2
    Kommentar von Uwe

    Frohe und besinnliche Festtage! :)

  3. 3
    Kommentar von Rudi

    Frohes und besinnliches Weihnachtsfest und viel, viel Gesundheit!

    Liebe Grüße

  4. 4
    Kommentar von Olaf

    Hallo Frank,
    das ist das absolute Highlight deiner Advents-Posts!!! Das wird mir bestimmt oft helfen. Vielen Dank für all deine Mühen.

    So, nu weiter mit Weihnachtsbaumschmücken...

  5. 5
    Kommentar von Markus

    Danke Frank für deine guten Beiträge in diesem Jahr, danke dass du diesen Blog betreibst und danke das du diesen Monat so fleißig warst. Ich habe mich über jedes einzelne Türchen gefreut. Mach dir ein schönes Fest und Rutsch gut ins neue Jahrzehnt.

  6. 6
    Kommentar von Markus

    Frohe Weihnachten und besinnliche Tage wünsch ich Dir. Nettes Plugin und werd ich mir auch mal genauer anschauen, da ich ziemlicj viel mit benutzerdefinierten Feldern arbeite könte das was für mich sein.

  7. 7
    Kommentar von Bernd

    Vielen Dank für die tollen Tipps, Codeschnippsel und Plugins und ein Schönes Weihnachtsfest!

  8. 8
    Kommentar von Agy

    Oh nettes Plugin, dankeschön.

    Dir und allen Lesern ein besinnliches Fest!

  9. 9
    Kommentar von bibliothek

    bei uns in frankfurt taut es. ich wünsche ein schönes weihnachtsfest und ein gutes neues jahr.

  10. 10
    Kommentar von Ralf

    24 mal Danke für diesen etwas anderen Adventskalender.

  11. 11
    Kommentar von Oliver Schlöbe

    Dir ein besinnliches Weihnachten, Frank, und danke für dein geteiltes Wissen das ganze Jahr über! :)

    Gruß Oli

  12. 12
    Kommentar von Dieter

    Lieber Frank,
    Dir und Deinen Angehörigen ein fröhliches Weihnachtsfest.
    Vielen Dank für Deinen vielen guten Tipps und Plugins.
    Beste Grüße
    Dieter

  13. 13
    Kommentar von Florian

    Hallo Frank,

    auch Dir wünsche ich ein besinnliches, friedvolles und erholsames Weihnachtsfest im Kreise Deiner Liebsten :)

    Liebe Grüße, Florian

  14. 14
    Kommentar von Nicki

    Das ist wirklich eine ganz große 24 - toll. Auch danke für das schöne Jahr voller wertvoller Anregungen. Ich habe in diesem Jahr wohl den größten Sprung in Sachen WP nach vorn gemacht. Gib mir noch 10 weitere Jahre und ich hole dich ein ;) . Viel Freude und Ruhe und Gemütlichkeit und Schnee und .... na du weißt schon :D .

  15. 15
    Kommentar von Heinrich

    Danke für Deine Arbeit, Ideen und Anregungen. Heinrich

  16. 16
    Kommentar von Caspar

    Hallo Frank, vielen Dank! Das reimt sich nicht nur, sondern kommt auch noch von Herzen… ;)
    Mit diesem Plugin lieferst Du mir die mindestens 134,5ste Inspiration und Lernvorlage (danke, danke, danke!) in diesem nun scheidenden Jahr. Möge es für Dich und Deine Lieben schön zu Ende gehen!
    Herzliche Grüße,
    Caspar

  17. 17
    Kommentar von ärdbaer

    Hallo!
    Ich glaube, das ist genau das, was ich gesucht habe.
    Werde es mir mal anschauen, vielen Dank schonmal!

  18. 18
    Kommentar von Ramona

    Vielen Dank für das Plugin, das ich noch nicht ausprobiert habe. Weil: Das Twitter-Plugin nutzt benutzerdef. Felder. Wenn die nun durch dein Plugin weg sind, wird Twitter keine Posts mehr aus dem Blog versenden?

  19. 19
    Kommentar von Frank Bültge

    @Ramona: dann die Zeile auskommentieren: remove_meta_box('postcustom', 'post', 'normal');

  20. 20
    Kommentar von Basti

    Hi,

    vielen vielen Dank dafür. Nachträglich wünsch ich schöne Weihnachten und hoffe, dass dir die Bücher gefallen!!

    viele Grüße

    Basti

  21. 21
    Kommentar von Benny

    Auch dir wünsche ich einen guten Rutsch ins neue Jahr. Vielen Dank für die Mail von dir. Also nicht zu doll feiern ;)

    Lg Benjamin

  22. 22
    Kommentar von ebook

    ich wünsche ein schönes und friedliches neue jahr und vielen dank für die tolle arbeit die du für wordpress leistest. mögest du weiter so produktiv im neuen jahr sein und nicht den spass an deinem tun verlieren.

  23. 23
    Kommentar von Feuerspucker

    Auch vom Feuerspucker Rick ein frohes neues Jahr 2010. Vielen Dank für die vielen tollen Infos die man hier lesen kann. Freue mich schon auf die neuen Beiträge im neuen Jahr 2010!

  24. 24
    Kommentar von Mark aus Hamburg

    Könnte genau das sein, was ich schon länger gesucht habe. Dank Dir.

    Und FROHES NEUES JAHR!

  25. 25
    Kommentar von datenkind

    UM HIMMELS WILLEN, FRANK! Das ist der Stein der Weisen, den ich brauche! Dafür gibt’s was von deiner Wunschliste!

  26. 26
    Kommentar von Luigi

    Wie immer bin ich mal wieder viel zu spät. So bleibt mir nur dir ein gutes neues Jahr zu wünschen! Ohne dich und deine fantastische Arbeit gäbe es meinen Blog sehr wahrscheinlich nicht mehr. Oft fand ich Hilfe bei dir wenn ich nicht mehr weiter wusste, was verdammt oft vorkommt.

    Das mit dem subtitle hört sich interessant an. Werde versuchen dies für meinen Blog zu nutzen.

    Noch mal alles gute für die Zukunft!

  27. 27
    Kommentar von Anja

    Vielen Dank für die Informationen

    Frohes Neues Jahr!

  28. 28
    Kommentar von Dirk

    Danke für die Info. Bin erst jetzt auf Ihre Seite gestossen und finde Ihre Beiträge und das Fachwissen wirklich sehr gut.

    Werde Ihre Seite auf jeden Fall weiter empfehlen.

  29. 29
    Kommentar von Fritz

    Frohes neues Jahr und danke für Code und Plugin Download! Sehr praktisch, grad weil ich gern mehr mit benutzerdefinierten Feldern arbeiten möchte.

  30. 30
    Kommentar von Martin

    Ich fände es ja lustig, wenn Wordpress etwas für Dragon naturally speaking machen könnte. Wobei das Programm ja auch so schon alles kann. Aber eine Analyse der wichtigsten Worte im Blog, die man dem Programm so beibringen kann.

  31. 31
    Kommentar von udo-heinz bernhard

    auch von mir alles gute in 2010.

  32. 32
    Kommentar von Andreas B.

    Ich habe selber einmal die Felder genutzt, um zum Beispiel Bild individuell auf die Startseite zu setzen, aber leider ist es am Quelltext gescheitert. Mittlerweile nutze ich nur noch wenige Plugins, um Wordpress nicht unnötig zu verlangsamen.

  33. 33
    Kommentar von Christian Schuster • cinoa

    Frank, Dein Text oben endet mit: [...] Ich freue mich auf ein neues Jahr mit euch und hadere der Dinge, die uns im neuen Jahr erreichen werden.[...]

    Du meinst wahrscheinlich 'harre' - oder? ... ein wundervoller freud'scher Verschreiber ?! - hoffe nicht.

    Anyway - Danke auch von mir als newcomer - Du bist ein wahre Fundgrube, Frank.
    Alle Gute für das was kommt ...

  34. 34
    Kommentar von Frank Bültge

    @Christina: Danke für Hinweis und Wünsche.

  35. 35
    Kommentar von Sven

    Hallo Frank und DANKE für das Plugin ;) habe es mir leicht angepasst und nun scheitere ich daran das der Inhalt der Felder leider nicht mit im RSS Feed ausgegeben wird, habe mich schon dusselig gelesen was Feed Output angeht aber irgendwie fehlt mir der Stein des Anstoßes auf den richtigen Lösungsweg zu kommen.
    WP gibt ja leider immer nur den reinen Content per RSS aus.

    Gruß Sven

  36. 36
    Kommentar von Frank Bültge

    @Sven: Du musst den content mit deinen Angaben ergänzen, dann ist er auch im Feed; hier mal ein Beitrag mit einem Beispiel, dort werden eben nur die Custom Fields ergänzt, wenn es sich um den Feed handelt.

  37. 37
    Kommentar von Sven

    Vielen Dank für die Antwort und den Link. Und ich hab mir schon ein Wolf gesucht in den ganzen Dateien für den Feed Output und einiges probiert was aber nicht zufriedenstellend war. Da ich auch dein CopyFeed Plugin testweise einsetze gestaltet sich das schwieriger als ich dacht da sich das CopyFeed Plugin irgendwie "vordrängelt" mit seinem Output und dann erst meine Daten aus den Benutzerdefinierten Felder ausgegeben wird. Als nicht "PHP'ler" mit geringen Kentnissen muss ich zwar viel nachschlagen aber komme trotzdem meist zu gewünschten Erfolg dank Informationsquellen wie deinem Blog.

  38. 38
    Kommentar von Frank Bültge

    @Sven: ©Feed macht nix anderes, es ergänzt einfach nur den content mit Hilfe des Filters add_filter('the_content', 'mein_neuer_inhalt'); daher sollte das gehen. Eventuell kannst du ja noch einen Wert 9 mitgeben, da das Plugin den Standard nutzt, also 10. Damit sollte dein Hook in den Filter wie folgt aussehen: add_filter('the_content', 'deine_zusatzinhalt_und_content', 9)

  39. 39
    Kommentar von Sven

    Vielen Dank für die schnelle Antwort Frank, ich werde mich wenn ich wieder etwas Zeit hab darüber hermachen. Es ist leider immer etwas ärgerlich das man für den vollen Content-Output via Feed zu solchen Lösungswegen greifen muss und Wordpress nicht von Haus aus gleich den vollen Output anbietet.

  40. 40
    Kommentar von Frank Bültge

    @Sven: WordPress zieht ja den vollen content, du erweiterst den ja nur, aber auf Ebene Frontend. Eventuell kanst ja via Filter und Action-Hook viel einfacher ergänzen.

  41. 41
    Kommentar von think123

    Kann ich das Plugin auch i-wie beim erstellen von neuen Seiten benutzen?

    Gruß
    think123

  42. 42
    Kommentar von Frank Bültge

    @think123: dazu muss es ein wenig erweitert werden, denn aktuell werden die Metaboxen nur bei posts eingehakt, nicht bei pages. Sollte aber schnell gehen; dazu gibt es hier sicher den Code in einem der Beiträge.

Kommentar schreiben

Kommentar-Hilfe

Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.

xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>

Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als &lt; und > als &gt; einfügt.

E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.

Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.

Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.

Spamschutz:
Das Kommentarformular ist mit einem JavaScript-Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.