Tipps, WordPress

WordPress WYSIWYG-Editor TinyMCE erweitern #2

Das schöne am Leben ist ja: man lernt immer dazu und nie aus. Auch in diesem Bereich ist das mal wieder so, denn ein alter Artikel auf diesem meinem kleinen Blog hier, hat mal erklärt, wie man den Editor TinyMCE in WordPress an seine Bedürfnisse anpassen kann – sträflich, denn ich habe damals die Core-Dateien von WordPress angefasst.

Um so wichtiger, dass ich eine bessere Lösung aufzeige und wiedermal, in dem Fall auch mich, darauf hinweise, dass man die Core-Dateien von Systemen nicht anfasst! Aber der Artikel scheint recht beliebt und scheinbar wollen auch viele Nutzer diesen Editor anpassen. Im ersten Schritt sucht man dann nach Plugins und nicht immer wird man fündig. Es gibt also noch immer Bedarf im Plugin-Sektor von WordPress; wie im übrigen auch meine Mails zeigen.
Weiterlesen

Standard
PHP, Tipps, WordPress

WordPress Artikel Veröffentlichung nutzen

Nicht immer will man alles so lösen wie es WordPress vorsieht und sucht eine andere Lösung. Nicht selten muss man für diverse Anwendungen das Backend nicht nutzen um Beiträge zu veröffentlichen.
Ein einfaches Beispiel wäre ein Formular, egal wo, mit dem ein Artikel veröffentlicht wird, in dem der Inhalt der Formular an WordPress übertragen wird und automatisch veröffentlicht wird. Alternativ könnte man ihn mit einem anderen Status senden und so erst frei geben, wenn die Redaktion den Artikel frei gibt.
Um nicht bei Null mit der Überlegung zu starten, hier die Funktion die diese Mächtigkeit inne hat und für alle Prozesse der Veröffentlichung verantwortlich ist.

wp_insert_post($postarr = array(), $wp_error = false)
Weiterlesen

Standard
PHP, Plugin, Tipps, WordPress

WordPress Plugin de-/installieren

WP Logo

Durch die aktuelle Arbeit am Plugin Adminimize sind mir wieder einige Punkte aufgefallen, die ich sinnvoll finde und in Plugins integriere.
Es ist Mehrwert, der sich aber zum Standard für Plugin-Autoren entwickeln sollte und daher lege ich es mal mit kurzer Erläuterung hier ab. Drei Lösungen sollen zeigen, wie man mit einfachen Mitteln und WordPress Hooks die Datenbank für die Einstellungen des Plugins vornimmt, optimiert und klein hält. Ebenso ist es mir wichtig, dass die Einträge in der Datenbank gelöscht werden, wenn das Plugin deaktiviert wird.
Die Nutzer des Plugins sind sicher dankbar für diese kleinen aber feinen Codeschnippsel im Plugin.
Weiterlesen

Standard
Code, PHP

PHP Debugging und Profiling leicht gemacht

PHP HowTo

Die Entwicklung von Scripten mittels PHP bringt immer wieder Schwierigkeiten im Bereich der Fehlersuche. Editoren bzw. Entwicklungsumgebungen, die eine Debuggingfunktion mitbringen, sind teuer oder nicht unbedingt leicht zu konfigurieren. Seite geraumer Zeit arbeite ich dabei mit Xdebug, eine Erweiterung für PHP, mit der das Debuggen einfach und schnell von der Hand geht.

Damit die Konfiguration immer wieder zur Hand ist und schnell und logisch nachvollziehbar ist, erkläre ich einigen Schritten, wie man zu einer Entwicklungsumgebung mittels Xdebug kommt. Weiterlesen

Standard
Webküche

10 Punkte bevor der Beitrag öffentlich wird

Veröffentlichen in WP

  1. Lies es noch mal und korrigiere eventuell.
    Im Zweifelsfall den Beitrag einige Tage liegen lassen und dann nochmals lesen – oft sehen dann logische Schlüsse anders aus.
  2. Rechtschreibung prüfen – als Hilfe kann der Google-Toolbar dienen. Fehler kommen immer vor, aber je weniger – desto besser.
  3. Der Titel des Beitrags sollte aussagekräftig sein – nicht immer leicht, aber sehr sehr hilfreich.
  4. Bilder sagen nur dem etwas, der sie sieht. Denke an die User, die den Feed ohne Bilder lesen ohne mit anderen Mitteln lesen. Ähnliches gilt für die Größe der Bilder, nicht jeder hat eine DSL6000-Verbindung. Überlege also, wie sinnvoll ist die Qualität im Vergleich zur Größe. Außerdem gehört zu jedem! Bild ein Alt-Tag.
  5. Die ersten Zeilen des Beitrags sollten Aussagekräftig sein, denn der „Teaser“ ist der Einstieg und in einigen Ansichten im Blog oder externen Services werden nur die ersten Zeilen gelistet.
  6. Du nutzt Inhalt einer anderen Quelle oder zitiertes, dann vergiss die Angabe der Quelle nicht. xHTML: q, blockquote und cite
  7. Links sind die Seele des Web, nutze Sie. Dazu zählen auch Links auf ältere Beiträge aus deinem Blog.
  8. Prüfe die Kategorie des Beitrags, ist sie sinnvoll? Einige Leser lesen nur Inhalt aus bestimmten Kategorien.
  9. Du verwendest ein Tagging-Plugin, dann pflege es auch. Vergebe Tags sparsam und treffend. Überlege die Synonyme und prüfe das Tagging.
  10. Gleiches gilt für die Vergabe von Meta-Keywords. Hat dein Blog eine solche Erweiterung, dann pflege sie und prüfe auf die richtigen Einträge.

Diese Artikel wurde zum Projekt „Blogtipps für Einsteiger“ geschrieben. Unter diesem Titel werden in den nächsten Tagen sicher eine ganze Reihe von Beiträgen erscheinen – den einen oder anderen Tipp sollte man sicher beherzigen.

Standard
Tipps, WordPress

WordPress Editor TinyMCE noch umfangreicher erweitern

Der WYSIWYG-Editor ist sicher nicht das Allheilmittel und ob und wie gern man ihn verwenden sollte, muss jeder selber wissen. Ich für meinen Teil komme immer lieber auf meine HTML-Kenntnisse zurück. Trotzdem trudeln hier immer wieder Anfragen ein und für ein Projekt, wo ich ohne WYSIWYG nicht auskomme, musste ich mich damit auseinander setzen.

Wie das meist so ist, haben die Anwender erst einmal das Prinzip geschluckt – so wollen Sie immer mehr. Ein Anforderung war das eigene Implementieren von Tabellen. Eine Tabelle ist mit purem HTML nicht so einfach zu integrieren, da muss man schon mal mitdenken. Der TinyMCE hat diese Möglichkeit, allerdings nicht im Umfang von WordPress.

Wie man Veränderungen sonst noch vornehmen kann, habe ich schonmal in einem älteren Artikel erläutert WordPress WYSIWYG-Editor TinyMCE erweitern.

Um den Editor zu erweitern, muss man erst einmal das komplette Paket downloaden und darin befinden sich auch alle Plugins. Nun muss man die benötigten Plugins in das Verzeichnis /wp-includes/js/tinymce/plugins/ kopieren.

Danach muss die Konfiguationsdatei tiny_mce_config.php bearbeitet werden, in /wp-includes/js/tinymce/.

Ich möchte hier nicht explizit jeden Part erläutern, dafür steht die Dokumentation des TinyMCE-Projektes zum Thema Plugin bereit.

Aber als Beispiel soll die Tabelle herhalten.

TinyMCE und Tabellen

Nachdem das Plugin table in das Plugin-Verzeichnis des TinyMCE kopiert wurde, ladet die Konfigurationsdatei in euren Editor. Dort sucht ihr:


$plugins = array('inlinepopups', 'autosave', 'spellchecker', 'paste', 'wordpress');

und erweitert um das Plugin, denn diese Variable übergibt alle zu verwendeten Plugins an die Initialisierung initArray, plugins : „<?php echo $plugins; ?>“.


$plugins = array('inlinepopups', 'autosave', 'spellchecker', 'paste', 'table', 'wordpress');

Außerdem muss der Button tablecontrols geladen werden. Alle Zusatzfunktionen habe ich in die dritte Zeile $mce_buttons_3 des Editors gelegt, so dass ein Unterschied zu erkennen ist und die Zusatzfunktionen von den Originalfunktionen getrennt sind.


$mce_buttons_3 = apply_filters('mce_buttons_3', array('tablecontrols'));
$mce_buttons_3 = implode($mce_buttons_3, ',');

Und das war es auch schon. Nun kann man per Extra-Fenster eine Tabelle integrieren.

Im folgenden der Code, der Datei tiny_mce_config.php, so dass alle Plugins immer aktiv sind und zusätzlich gibt es Tabellen – table, xhtml-Extras – cite, ins , del, abbr, acronym und Suchen & Ersetzen – search, replace. Allerdings soll dies nur als Beispiel dienen. TinyMCE bringt wesentlich mehr mit.

Eine andere Lösung, wenn man mit dem Editor nicht zufrieden ist, ist das Austauschen des Editors gegen einen anderen Editor. Erik Pöhler erklärt es – Weg mit TinyMCE… aber Zack Zack!


<?php
	@ require('../../../wp-config.php');

	function wp_translate_tinymce_lang($text) {
		if ( ! function_exists('__') ) {
			return $text;
		} else {
			$search1 = "/^tinyMCELang\\[(['\"])(.*)\\1\]( ?= ?)(['\"])(.*)\\4/Uem";
			$replace1 = "'tinyMCELang[\\1\\2\\1]\\3'.stripslashes('\\4').__('\\5').stripslashes('\\4')";

			$search2 = "/ : (['\"])(.*)\\1/Uem";
			$replace2 = "' : '.stripslashes('\\1').__('\\2').stripslashes('\\1')";

			$search = array($search1, $search2);
			$replace = array($replace1, $replace2);

			$text = preg_replace($search, $replace, $text);

			return $text;
		}
	}

	// Set up init variables
	$valid_elements = 'p/-div[*],-strong/-b[*],-em/-i[*],-font[*],-ul[*],-ol[*],-li[*],*[*]';
	$valid_elements = apply_filters('mce_valid_elements', $valid_elements);

	$plugins = array('inlinepopups', 'autosave', 'spellchecker', 'paste', 'table', 'xhtmlxtras', 'searchreplace', 'wordpress');
	$plugins = apply_filters('mce_plugins', $plugins);
	$plugins = implode($plugins, ',');

	$mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'separator', 'bullist', 'numlist', 'outdent', 'indent', 'separator', 'justifyleft', 'justifycenter', 'justifyright', 'separator', 'link', 'unlink', 'image', 'wp_more', 'separator', 'spellchecker', 'separator', 'wp_help'));
	$mce_buttons = implode($mce_buttons, ',');

	$mce_buttons_2 = apply_filters('mce_buttons_2', array('formatselect', 'underline', 'justifyfull', 'forecolor', 'separator', 'pastetext', 'pasteword', 'separator', 'removeformat', 'cleanup', 'separator', 'charmap', 'separator', 'undo', 'redo'));
	$mce_buttons_2 = implode($mce_buttons_2, ',');

	$mce_buttons_3 = apply_filters('mce_buttons_3', array('tablecontrols', 'separator', 'cite', 'ins', 'del', 'abbr', 'acronym', 'separator', 'search', 'replace'));
	$mce_buttons_3 = implode($mce_buttons_3, ',');

	$mce_browsers = apply_filters('mce_browsers', array('msie', 'gecko', 'opera', 'safari'));
	$mce_browsers = implode($mce_browsers, ',');
	
	$mce_popups_css = get_option('siteurl') . '/wp-includes/js/tinymce/plugins/wordpress/popups.css';
	$mce_css = get_option('siteurl') . '/wp-includes/js/tinymce/plugins/wordpress/wordpress.css';
	$mce_css = apply_filters('mce_css', $mce_css);
	if ( $_SERVER['HTTPS'] == 'on' ) {
		$mce_css = str_replace('http://', 'https://', $mce_css);
		$mce_popups_css = str_replace('http://', 'https://', $mce_popups_css);
	}
?>

initArray = {
	mode : "specific_textareas",
	editor_selector : "mceEditor",
	width : "100%",
	theme : "advanced",
	theme_advanced_buttons1 : "<?php echo $mce_buttons; ?>",
	theme_advanced_buttons2 : "<?php echo $mce_buttons_2; ?>",
	theme_advanced_buttons3 : "<?php echo $mce_buttons_3; ?>",
	language : "<?php echo strtolower(get_locale()); ?>",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_path_location : "bottom",
	theme_advanced_resizing : true,
	browsers : "<?php echo $mce_browsers; ?>",
	dialog_type : "modal",
	theme_advanced_resize_horizontal : false,
	convert_urls : false,
	relative_urls : false,
	remove_script_host : false,
	force_p_newlines : true,
	force_br_newlines : false,
	convert_newlines_to_brs : false,
	remove_linebreaks : false,
	fix_list_elements : true,
	entities : "38,amp,60,lt,62,gt",
	content_css : "<?php echo $mce_css; ?>",
	valid_elements : "<?php echo $valid_elements; ?>",
	save_callback : 'TinyMCE_wordpressPlugin.saveCallback',
	imp_version : "<?php echo intval($_GET['ver']); ?>",
<?php do_action('mce_options'); ?>
	plugins : "<?php echo $plugins; ?>"
};

<?php
	// For people who really REALLY know what they're doing with TinyMCE
	// You can modify initArray to add, remove, change elements of the config before tinyMCE.init
	do_action('tinymce_before_init');
?>

tinyMCE.init(initArray);
Standard
Tipps, WordPress

WordPress WYSIWYG-Editor TinyMCE erweitern

Der Editor TinyMCE, der seit Version 2.1 von WordPress dabei ist hat eine ganze Reihe von Funktionen, die allerdings nicht standardmäßig ersichtlich sind. Außerdem gibt es die Funktion HTML-Code, die überhaupt nicht berücksichtigt wurde.

TinyMCE erweitert

Ich habe für ein Projekt den Editor verändert, so dass die Autoren leichter an die Zusatzfunktion kommen, einfach den zugehörigen Button klicken, und einen zusätzlichen Button für die Bearbeitung des kompletten HTML-Codes haben, in einem extra Fester.

Dazu muss die Konfigurationsdatei vom Editor bearbeitet werden: /wp-includes/js/tinymce/tiny_mce_config.php

Ändert den Code bei $mce_buttons in folgenden, oder passt ihn an.


$mce_buttons = apply_filters( 'mce_buttons', array( 'bold', 'italic', 'strikethrough', 'separator', 'bullist', 'numlist', 'outdent', 'indent', 'separator', 'justifyleft', 'justifycenter', 'justifyright', 'separator', 'link', 'unlink', 'image', 'wp_more', 'separator', 'spellchecker', 'separator', 'wp_help', 'wp_adv', 'wp_adv_start', 'formatselect', 'underline', 'justifyfull', 'forecolor', 'separator', 'pastetext', 'pasteword', 'separator', 'removeformat', 'cleanup', 'separator', 'charmap', 'separator', 'undo', 'redo', 'separator', 'code', 'wp_adv_end' ) );
$mce_buttons = implode( $mce_buttons, ',' );

Der Button HTML kommt durch die Erweiterung von code. Der Button für das Ein-/Ausschalten der Zusatzfunktionen kommt daher, weil ich den Tag wp_adv vorgezogen habe, vor wp_ad_start.

Weitere Links:

Standard
Code, PHP, Tipps, WordPress

WordPress Track- und Pingbacks seperat listen, ohne Plugin

Will man die Track- und Pingbacks im Kommentarbereich extra darstellen so kann man mit dem Plugin Trackbacklist arbeiten und dabei hilft einem die Anleitung von Peruns Weblog.
Man kann aber auch das Theme bearbeiten und dabei die Template-Datei comments.php anpassen, in dem man mit WordPress-Template-Tags arbeitet.

Im folgenden ein kleines Beispiel, wie man die Trackbacks und Pingbacks zu einem Beitrag seperat auflisten kann. Da sind der Phantasie und Abfragemechanismen keine Grenzen gesetzt. Ansehen kann man das Ganze auf dieser aktuellen Website zum Beispiel unter diesem Link. Die Track- und Pingbacks befinden sich innerhalb der Kommentare, sehen aber anders aus und enthalten keinen Text. Aus der Liste wollte ich sie nicht entfernen, da dann die Kommentare mt Bezug auf eine Kommentarnummer nicht mehr stimmen. Um die Ping- und Trackbacks komplett auszulagern, habe ich am Ende ein Code-Beispiel für eine komplette comments.php hinterlegt.
Noch mehr Tipps und vorallem Diskussion gibt es bei Robert’s Artikel „Trackbacks von Kommentaren kennen“ in den Kommentaren.

Übrigens, wer noch ein wenig Nachhilfe bei dem Begriff Trackback benötigt, der findet eine tolle Erklärung bei Michael – Was sind Trackbacks? Erklärung im Sendung-mit-der-Maus-Stil

Zuerst fragen wir ab, ob es Kommentare zu Beitrag gibt:

if ($comments)

Nun bauen wir die foreach-Schleife aus, in dem wir eine weitere Abfrage einbauen:

if ((get_comment_type() == "trackback") || (get_comment_type() == "pingback"))

Der Tag get_comment_type übergibt uns, um was für einen Kommentar es sich handelt, und in dem Fall lassen wir alle Kommentare zu, die per Trackback oder Pingback kommen. Im Ganzen sieht der Code dann folgendermaßen aus.


<?php if ($comments) : ?>
	<ol class="trackbacklist">
	<?php foreach ($comments as $comment) : if ((get_comment_type() == "trackback") || (get_comment_type() == "pingback")) : ?>

		<li id="comment-<?php comment_ID() ?>" >
			<?php comment_type('Kommentar', 'Trackback', 'Pingback'); ?><small> von </small><cite><?php comment_author_link() ?></cite>
			<br />
			<small class="commentmetadata"><?php comment_date('j. F Y') ?> um <?php comment_time('H:i') ?> <?php edit_comment_link('· bearbeiten','',''); ?></small>

			<?php comment_text() ?>
		</li>

	<?php endif; endforeach; /* end for each comment */ ?>
	</ol>
 <?php endif; ?>

Damit nun der Kommentarbereich auch wirklich nur Kommentare aus dem Textfeld übernimmt, müssen wir die Abfrage dort noch erweitern, denn noch werden ja alle Kommentare, ob Track- oder Pingback dort dargestellt. Dazu erweitert man die Schleife.
Suche nach:

<?php foreach ($comments as $comment) : ?>

und ersetze mit:

<?php foreach ($comments as $comment) : if (get_comment_type() == "comment") : ?>

Außerdem müssen wir beim Schließen der foreach-Schleife die Abfrage beenden:
Suche nach:

<?php endforeach; ?>

und ersetze mit:

<?php endif; endforeach; ?>

Die Darstellung der Kommentaranzahl wird üblicherweise mit dem Tag comments_number() erstellt, die aber alle Kommentare zählt, egal ob Track-, Pingback oder Kommentar. Dagegen hilft nur eine weiter Abfrage – WP – Trackbacks und Kommentare getrennt zählen. In diesem Artikel erkläre ich dann diese Funktion näher.

We noch mehr Tipps zum Anpassen des Kommentarbereiches möchte, der findet drei weitere Möglichkeiten im Artikel WP – Kommentarbereich anpassen. Dort erläuter ich kurz, wie man einen Counter einbaut, die Kommentare des Beitragsautors hervorhebt und wie man Gravatare zu den Kommentarautoren darstellt.

Beispiel einer kompletten comments.php mit Track- und Pingback am Ende


<?php
/*********************************************************************
comments-template mit counter, trackback, Hervorhebung des Autors 
und Trennung Kommentare zu Track- und Pingback
**********************************************************************/
?>

<div id="comments">
<?php // Do not delete these lines
	if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
		die ('Bitte diese Seite nicht direkt laden. Danke !');

				if (!empty($post->post_password)) { // if there's a password
						if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie
				?>
				
				<p class="nocomments">Dieser Beitrag ist passwortgesch&#252;tzt. Bitte gebe das Passwort an um die Kommentare zu sehen.</p><p>
				
				<?php
				return;
						}
				}

		/* alternating varibale for comment background */
		$oddcomment = 'alt';
?>

<?php if ($comments) : ?>
	<h2 class="twost"><?php comments_number('0 Kommentare', '1 Kommentar', '% Kommentare' );?> zu &#8222;<?php the_title(); ?>&#8220;</h2>

	<ol class="commentlist">

	<?php $gravatar_default = "ADRESSE_ZUM_DEFAULTBILD"; ?>

	<?php $count = 0; foreach ($comments as $comment) : if (get_comment_type() == "comment") : $count++; ?>

		<li id="comment-<?php comment_ID() ?>"
			<?php global $comment;
				if ( ($comment->comment_author_email == get_the_author_email()) && ($comment->user_id != 0) ) {
						echo " class=\"autor_kommentar\"";
				} else {
						echo " class=\"" . $oddcomment . "\"";
				}
			?>>
			<p class="comment-number"><a href="#comment-<?php comment_ID() ?>"><?php echo $count; ?></a></p>

			<?php $gravatar_url = "http://www.gravatar.com/avatar.php?gravatar_id=" . md5(get_comment_author_email()) . "&amp;default=" . urlencode($gravatar_default) . "&amp;size=30"; ?>
			<img class="gravatar" src="<?php echo $gravatar_url ?/>" title="<?php comment_author(); ?>'s Gravatar" alt="id" />
	
			<?php comment_type('Kommentar', 'Trackback', 'Pingback'); ?><small> von </small><cite><?php comment_author_link() ?></cite>
			<?php if ($comment->comment_approved == '0') : ?>
			<em>Dein Kommentar muss noch moderiert werden.</em>
			<?php endif; ?>
			<br />
			<small class="commentmetadata"><?php comment_date('j. F Y') ?> um <?php comment_time('H:i') ?> <?php edit_comment_link('&middot; bearbeiten','',''); ?></small>

			<?php comment_text() ?>
		</li>

	<?php /* Changes every other comment to a different class */  
		if ('alt' == $oddcomment) $oddcomment = '';
		else $oddcomment = 'alt';
	?>

	<?php endif; endforeach; /* end for each comment */ ?>
	</ol>

 <?php else : // this is displayed if there are no comments so far ?>

	<?php if ('open' == $post->comment_status) : ?> 
		<!-- If comments are open, but there are no comments. -->
		
	 <?php else : // comments are closed ?>

		</p><p class="nocomments">Kommentare sind gechlossen.</p>
		
	<?php endif; ?>
<?php endif; ?>

<?php if ('open' == $post->comment_status) : ?>

<h2 class="threest" id="writecomment">Kommentar schreiben</h2>

<?php if ( get_option('comment_registration') && !$user_ID ) : ?>
<p>Du musst <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php the_permalink(); ?>">angemeldet</a> sein um einen Kommentar zu schreiben.</p>
<?php else : ?>

	<form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
		
		<?php if ( $user_ID ) : ?>	
			<p>Angemeldet als <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?action=logout" title="Log out of this account">Abmelden &raquo;</a></p>	
		<?php else : ?>
	
			<p>
				<input type="text" name="author" id="author" value="<?php echo $comment_author; ?/>" size="20" tabindex="1" />
				<label for="author">Name <?php if ($req) echo "<small>Pflichtfeld"; ?></label>
			</p>
			<p>
				<input type="text" name="email" id="email" value="<?php echo $comment_author_email; ?/>" size="20" tabindex="2" />
				<label for="email">eMail (bleibt versteckt) <?php if ($req) echo "<small>Pflichtfeld"; ?></label>
			</p>	
			<p>
				<input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?/>" size="20" tabindex="3" />
				<label for="url">Website</label>
			</p>
			<?php if ( function_exists('math_comment_spam_protection') ) { $mcsp_info = math_comment_spam_protection();?>
			<p>
				<input type="text" name="mcspvalue" id="mcspvalue" value="" size="20" tabindex="4" />
				<label for="mcspvalue">Spamschutz: <?php echo $mcsp_info['operand1'] . ' + ' . $mcsp_info['operand2'] . ' = ?' ?> <small>Pflichtfeld</small></label>
				<input type="hidden" name="mcspinfo" value="<?php echo $mcsp_info['result']; ?/>" />
			</p>
			<?php } ?>
				
		<?php endif; ?>
			<p class="textfeld" >Textfeld &raquo; <a href="javascript:change_textbox_size(-80);" title="Textfeld verkleinern" >kleiner</a> &middot; <a href="javascript:change_textbox_size(80);" title="Textfeld vergr&ouml;&szlig;ern" >gr&ouml;&szlig;er</a></p>
			<p>
				<textarea name="comment" id="comment" cols="30" rows="5" tabindex="4"></textarea>
			</p>
			<p>
				<input name="submit" type="submit" id="submit" tabindex="6" value="Kommentar absenden" />
				<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?/>" />
			</p>
		<?php do_action('comment_form', $post->ID); ?>
	</form>
	<?php endif; // If registration required and not logged in ?>

<?php endif; // if you delete this the sky will fall on your head ?>

<?php if ($comments) : ?>
	<ol class="trackbacklist">

	<?php foreach ($comments as $comment) : if ((get_comment_type() == "trackback") || (get_comment_type() == "pingback")) : $count++?>

		<li id="comment-<?php comment_ID() ?>" class="<?php echo $oddcomment; ?>">
			<p class="comment-number"><a href="#comment-<?php comment_ID() ?>"><?php echo $count; ?></a></p>
			<?php comment_type('Kommentar', 'Trackback', 'Pingback'); ?><small> von </small><cite><?php comment_author_link() ?></cite>
			<br />
			<small class="commentmetadata"><?php comment_date('j. F Y') ?> um <?php comment_time('H:i') ?> <?php edit_comment_link('&middot; bearbeiten','',''); ?></small>

			<?php //comment_text() ?>
		</li>

	<?php /* Changes every other comment to a different class */  
		if ('alt' == $oddcomment) $oddcomment = '';
		else $oddcomment = 'alt';
	?>

	<?php endif; endforeach; /* end for each comment */ ?>
	</ol>
 <?php else : // this is displayed if there are no comments so far ?>

	<?php if ('open' == $post->comment_status) : ?> 
		<!-- If comments are open, but there are no comments. -->
		
	 <?php else : // comments are closed ?>

		<p class="nocomments">Trackpacks/Pingbacks sind gechlossen.</p>
		
	<?php endif; ?>
<?php endif; ?>

</div>
Standard
Tipps, Webküche, WordPress

Wie fange ich an zu bloggen ?

Derzeit ist es so, dass ich kaum noch zum Arbeiten an meinen privaten Projekten komme, da ich viel Zeit mit Support in Bereich WordPress verwende. Woran liegt das? – Einerseits liegt es wohl daran, dass WP ein tolles Tool ist, andererseits kommen täglich neue Blogs im WWW zum Vorschein. Es ist einfach sich einen Blog mit Hilfe von WP einzurichten und das WP-hosting tut seinen Beitrag dazu. Nicht das ich es nicht gut finde, ganz im Gegenteil, das Web ist für alle da und für alle die gleichen Rechte.
Aber leider habe ich den Eindruck, dass ständig neue Blogs auf den Markt kommen, ohne sich Gedanken zum Thema zum machen. Sie haben kein Ziel oder Zweck ihres Blogs definiert. Bloggen ist eine Modewelle und daran wollen scheinbar viele Leute teilhaben.
Wie fange ich an zu bloggen? – Einige Anregungen soll der folgende Artikel geben.
Weiterlesen

Standard