Das Putzlowitsch Test- und SEO-Blog

Home/Startseite im WordPress-Menü

Mit der Funktion wp_list_pages kann man sich z.B. in der Sidebar eine Liste mit den statischen Seiten als Menü ausgeben lassen. Nun möchte man dabei vielleicht auch einen Link zur Startseite haben, was man z.B. so direkt in der sidebar.php realisieren könnte:

<li><h2>Seiten</h2>
 <ul>
  <li><a href="<?php echo get_settings('home'); ?>">Start</a></li>
  <?php wp_list_pages( 'sort_column=menu_order&title_li=' ); ?>
 </ul>
</li>

Dabei wird einfach der Link direkt vor der Listenausgabe manuell eingefügt.
Das ist die herkömmliche Methode. Es geht aber auch anders.

Wer nicht unbedingt in der Datenbank rumfummeln will, braucht hier nicht weiterzulesen. Stattdessen kann das Plugin „123 Homelink“ verwendet werden.

Zunächst legt man eine neue statische Seite an und gibt ihr den Titel, der dann im Menü für den Link zur Startseite angezeigt werden soll, also z.B. „Start“ oder „Home“. Der Inhalt kann leer bleiben weil er nie angezeigt wird. Nach dem Speichern merkt man sich die ID, welche von WordPress für die Seite vergeben wurde.
Nun öffnet man mit phpMyAdmin oder einem anderen Datenbank-Werkzeug die Tabelle ‚wp_posts‘ und geht zum Artikel mit der vorher gemerkten ID. Hier ändert man den Inhalt folgender Felder:
post_name=/
guid=http://schnurpsel.de/

In post_name steht also nur ein Schrägstrich und in guid die Adresse der Startseite, entsprechend dann aber nicht http://schnurpsel.de/, sondern die eigene :-)
Falls das Blog in einem Unterverzeichnis liegt, muß bei guid dieses mit angegeben werden, nicht aber bei post_name.

Außerdem muß man diese Eingriffe in die Datenbank immer wieder neu ausführen, wenn man an der Dummy-Startseite etwas verändert und gespeichert hat. Aber so oft wird das nicht der Fall sein. Einmal angelegt und gut ist.

Weitere Artikel mit Bezug zu diesem:
7 Kommentare »

robots.txt richtig verstehen und verwenden

Ich hatte zumindest auf Grund eines Verständnisproblems der Funktionsweise der Datei ‚robots.txt‘ schon Zweifel an mir oder am Googlebot gehabt. Denn eigentlich, da war ich mir sicher, respektiert der Googlebot, wie auch alle anderen seriösen Suchmaschinenroboter und sonstige Webcrawler, die Einträge in dieser Roboter-Steuerdatei.
Doch vor einiger Zeit war mir aufgefallen, das eine Seite, die ich explizit für alle Spider ausgeschlossen hatte, vom Googlebot eingelesen wurde und dann sogar in den Suchergebnislisten auftauchte. Zumindest dachte ich, das ich sie damit für alle Robots verboten hätte:

User-agent: *
Disallow: /geheim

Das ging auch alles gut, bis ich auf die Idee kam, dem Googlebot zu verbieten, meine feeds mit in den Index aufzunehmen. Kein Problem, zwei Zeilen in der ‚robots.txt‘ hinzugefügt, die dann so aussah:

User-agent: *
Disallow: /geheim

User-agent: Googlebot
Disallow: */feed/

Das mit den Feeds klappte auch gut, aber plötzlich wurde meine /geheim-Seite vom Googlebot gelesen und erschien einige Tage später sogar auf den Ergebnisseiten. Naja, dachte ich, der Googlebot ist ja auch nur (k)ein Mensch, der macht ja vielleicht auch mal Fehler. Bis ich dann der Sache vor ein paar Tagen nachgegangen bin.

Wo lag nun mein Denkfehler? Ich hatte angenommen, das der Eintrag mit ‚User-agent: *‘ für alle Spider gilt, und die jeweils explizit angegebenen ‚User-agent: Irgendwas‘ eben zusätzlich für diesen. Das ist aber mitnichten so.
Vielmehr gelten die Einträge mit ‚User-agent: *‘ nur für die Bots, die keinen explizit Eintrag haben. Alle namentlich genannten Bots interessieren sich nur für die unter ihrem Namen stehenden Anweisungen.
Richtig muß meine ‚robots.txt‘ also so aussehen:

User-agent: *
Disallow: /geheim

User-agent: Googlebot
Disallow: */feed/
Disallow: /geheim

Nun klappts auch wieder mit dem Googlebot.

Weitere Artikel mit Bezug zu diesem:
Keine Kommentare »

WordPress verstehen

Man muß WordPress nicht verstehen, um es benutzen zu können.

Im einfachsten Fall meldet man bei wordpress.com ein eigenes Blog an und kann loslegen. Oder der Webhoster, bei dem man ohnehin schon seine Webseite hat, bietet Rundumsorglos-Blogs an, wie z.B. 1und1. In den Fällen muß man aber einige Einschränkungen hinsichtlich Erweiterbarkeit (Plugins) und Gestaltungsmöglichkeiten (Themes) in Kauf nehmen. Wenn man aber mit den gebotenen Funktionen und einem der zur Auswahl stehenden Designs zufrieden ist, ist das sicher die unkomplizierteste Möglichkeiten in die Blogosphäre einzutauchen.

Oder man hat in seinem Webhostingpaket die Möglichkeit mindestens eine MySQL-Datenbank und PHP zu nutzen. Dann kann man sich WordPress runterladen und auf dem eigenen Webspeicherplatz installieren. Wie das geht, habe ich hier am Beispiel von Strato beschrieben. Das läßt sich aber sinngemäß auch auf andere Hoster übertragen. Auch hier kann man normalerweise in der Grundkonfiguration gleich mit dem Bloggen loslegen. Und man hat alle Möglichkeiten, WordPress über Plugins und Hacks in der Funktionalität zu erweitern und mit fertigen oder selbst entworfenen Themes das Aussehen und die Bedienung den eigenen Wünschen anzupassen.

Und genau dann, wenn man selbst anfängt, eigene Ideen umsetzen zu wollen wird man nicht umhinkommen, WordPress verstehen zu müssen. Das dahinterstehende Konzept, den Aufbau und je nach Tiefe auch die inneren Abläufe bis hin zu einzelnen Funktionen und der bedeutung von Variablem, Parametern und ähnlichem.

Keine Kommentare »

Strato wird vernünfig

Manchmal denkt man, man glaubt es kaum. Aber eben grade habe ich beim Rumexperimentieren bemerkt, daß Strato doch tatsächlich für die sonst eher etwas minderbemittelten PowerWeb-Pakete das memory_limit auf 16M erhöht und den safe_mode ausgeschaltet (off) hat. Jetzt fehlt nur noch, daß mod_rewrite unterstütz wird, dann sind einige Probleme mit Strato und WordPress wohl Zeitgeschichte.
In den FAQ steht es auch schon drin, zumindest beim ‚Wert‘, die ‚Beschreibung‘ ist noch nicht ganz passend. Wundert mich nur, daß die daß nicht an die große Glocke hängen, als Meldung auf Seite 1 oder so:

„Strato PowerWeb-Pakete mit mehr Power, jetzt 16MB Speicher und kein SafeMode für PHP“

Oder hab ichs etwa übersehen?

Keine Kommentare »

Letzter Beitrag als Startseite

Ab WordPress Version 2.1 kann man eine Statische Seite als Startseite festlegen. Mit einem kleinen Trick geht das auch für den aktuellen Beitrag. Als Beispiel will ich hier die Vorgehensweise für das „Standard DE Theme“, so wie es leicht modifiziert auch hier verwendet wird, beschreiben.

Zunächst wird eine Kopie der Datei ’single.php‘ erstellt und z.B. ’start_page.php‘ genannt. In diese wird ganz oben, noch vor „<?php get_header(); ?>“ Folgender Quelltext eingefügt:

<?php
/*
Template Name: Startseite
*/
?>

Damit haben wir diese Seite zum Seiten-Template ernannt.
Nun sind noch einige, weitere Änderungen erforderlich. Damit auf der Startseite auch die Sidebar ordentlich dargestellt werden kann, ändern wir gleich nach dem „<?php get_header(); ?>“ das

<div id="content" class="widecolumn">

in

<div id="content" class="narrowcolumn">

und fügen direkt danach noch folgendes ein:

<?php
  query_posts('showposts=1');
?>

Falls wir den in der erstellten Startseite enthaltenen Text z.B. als Willkommenstext ausgeben wollen, kann dazwischen noch folgendes eingefügt werden:

<div class="post" id="willkommen">
	<div class="entry">
		<?php the_post(); the_content(''); rewind_posts(); ?>
	</div>
</div>

Über die ID „willkommen“ kann dann dieser Text in der style.css noch individuell formatiert werden. Der Klassenname des inneren DIV sollte dem bei den normalen Beiträgen entsprechen. So hat man schonmal eine brauchbare Grundformatierung.

Somit sieht sieht der Anfang unserer ’start_page.php‘ dann etwa so aus:

<?php
/*
Template Name: Startseite
*/
?>
<?php get_header(); ?>

	<div id="content" class="narrowcolumn">
		<div class="post" id="willkommen">
			<div class="entry">
				<?php the_post(); the_content(''); rewind_posts(); ?>
			</div>
		</div>
				
<?php
  query_posts('showposts=1');
?>	
  <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
	
		<div class="navigation">

Damit die Sidebar auch tatsächlich angezeigt wird, müssen wir den entsprechenden Code get_sidebar() fast ganz am Ende direkt vor get_footer() einfügen. Das sieht dann etwas so aus:

<?php get_sidebar(); ?>

<?php get_footer(); ?>

Nun die Datei speichern und in des Theme-Verzeichnis auf dem Server übertragen.

Jetzt erstellen wir über ‚Schreiben‘->’Seite schreiben‘ eine neue statische Seite. Der geben wir als Titel zum Beispiel „Start“. Der Inhalt darf leer bleiben, den bekomen wir eh nie zu sehen, dafür soll ja der letzte Artikel angezeigt werden kann z.B. einen Willkommenstext enthalten, der vor dem eigentlichen Artikel ausgegeben wird. Wichtig ist, das wir rechts unter ‚Template der Seite‘ das gerade erstellte Template „Start“ auswählen. Nun kann die Seite gespeichert werden und wir wechseln in den Einstellungen-Bereich.

Unter ‚Einstellungen‘->’Lesen‘ klicken wir bei ‚Startseite‘ für ‚Anzeige‘ die Option

(•) Eine statische Seite (unten auswählen)

an und wählen die Seite „Start“ als Startseite aus:

Startseite: [Start     [▼]]

Nun die [Einstellungen aktualisieren] und falls ich nichts vergessen hab, ist der aktuelle Beitrag nun die Startseite

Mal gucken, ob es geklappt hat…

Nachtrag: Ja, scheint zu funktionieren :-) Große Freude!

35 Kommentare »