WordPress als CMS: zweites Beispiel

Wordpress In dem Bericht “Wordpress als CMS: ein Beispiel” habe ich bereits einen Fall geschildert wie man WordPress auch als “klassisches” Redaktionssystem einsetzen kann. Nun werde ich ein zweites Beispiel aus der Praxis liefern.

Aber vorab ein paar grundlegende Sachen bevor ich mit dem Beispiel fortfahre, da ich aus den Trackbacks und verweisenden Seiten einiges zu diesen Bericht gelesen habe.

Erster Punkt: Wenn ich Redaktionssystem sage, dann meine ich ein webbasiertes System mit dem ich Inhalte online verwalten kann. In einem Forum habe ich mitbekommen wie sich einige User (in Anlehnung an den ersten Bericht) über die “richtige” Definition eines Redaktionssystems unterhalten haben.

Zweiter Punkt: die Aussage viele Wege führen nach Rom gilt auch bei WordPress :-). Ich sage nicht das meine Ausführungen der Weisheit letzter Schluss sind, es sind nur praktische Erfahrungen. Evtl. kennt jemand elegantere Möglichkeiten zum Ziel zu gelangen.

Dritter Punkt: im ersten Beispiel habe ich die Hauptnavigation “manuell” ausgegeben und zwar nicht weil ich nicht weiß wie man sie automatisch ausgibt, sondern weil der Kunde wollte das der aktuelle Navipunkt hervorgehoben wird.

OK, nun kommen wir zum Beispiel.

Die Präsenz des Kunden soll ca. 25 Seiten beinhalten. Davon sind 7 Seiten auf der ersten Ebene und bei 4 Seiten der ersten Ebene verzweigen sich, auf der zweiten Ebene, zwischen 4-6 Seiten. Der Wunsch des Kunden ist, daß auf der linken Seite die Hauptnavigation untergebracht wird (Seiten der ersten Ebene) und wenn man die jeweilige Seite im linken Bereich anklickt, soll sich rechts vom Inhalt die passende sekundäre Navigation darstellen bzw. leer bleiben wenn die jeweilige Seite keine Unterseiten hat. Auch an der URL-Struktur soll erkennbar sein auf welcher Ebene man sich befindet, z. B.: www.die-domain.de/ebene1/ebene2/.

Der Kunde will nicht bloggen und braucht daher auch keine Weblogfunktionalität. Auch wünscht er keine Hervorhebung des aktuellen Navigationspunktes, was die Sache etwas leichter macht.

Und wie verfahren wir jetzt? Auch in diesem Beispiel setze ich wieder auf die “Pages”. Bei den Pages bekomme ich “sauberere” URLs und kann verschiedenartige Templates nutzen, aber dazu später.

Als erstes machen wir innerhalb von wp-content/themes/ einen neuen Ordner, nennen wir ihn jetzt einfach webprojekt. Innerhalb dieses Ordners generieren wir eine Musterseite mit dem Grundlayout und benennen diese Seite als index.php. Am Anfang der dazugehörigen CSS-Datei sollte man Angaben anpassen, damit das spätere Template innerhalb der Administrations-Oberfläche erkannt wird.

Dann entschlanken wir den WordPress-Loop (z. B. aus dem “classic”-Template), folgender Code reicht aus:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2 id="post-<?php the_ID(); ?>"><?php the_title(); ?></h2>
<div class="storycontent">
<?php the_content(__('(more...)')); ?>
<div><?php edit_post_link(__('Edit This')); ?></div>
</div>
<?php endwhile; else: ?>
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>

Diesen Code fügen wir innerhalb der index.php ein und zwar dort wo der Inhalt erscheinen soll. Alles was mit Kommentaren zu tun hat kommt weg. Daher ist es auch nicht notwendig z. B. die comments.php hochzuladen bzw. zu erstellen.

[adrotate group=”5″]

Nun gehen wir zum nächsten Schritt. Innerhalb des neuen Ordners erstellen wir eine Datei mit dem Namen sidebar.php. In diese Datei fügen wir folgenden Code rein und speichern sie ab:

<!-- begin sidebar -->
<ul>
<li><a href="/">Startseite</a></li>
<?php wp_list_pages('sort_column=menu_order&title_li=&depth=1' ); ?>
</ul>
<!-- end sidebar -->

Interessant an diesem Code ist die Zeile 4. Mit dem parameter sort_column=menu_order erreichen wir das die “Pages” (staatische Seiten) nach der ID (fortlaufende Nummer in der Datenbank) sortiert werden, da der Kunde eine bestimmte Reihenfolge wünschte. Mit title_li= erreichen wir das keine Überschrift(Standard: “Seiten”) in der Hauptnavigation ausgegeben wird und mit der letzten Anweisung depth=1 erreichen wir das die Seiten der ersten Ebene ausgegeben werden.

In der index.php fügen wir dort, wo die Hauptnavigation erscheinen soll, folgenden Code: <?php get_sidebar(); ?>. Somit ist die Hauptnavigation eingebunden. Nun steht uns die Möglichkeit offen den “Kopf” und “Fuß” von der index.php auszulagern in die header.php bzw. footer.php. Ob wir jetzt den “Kopf” und/oder “Fuß” der Seite auslagern oder nicht, auf jeden Fall sollte innerhalb des Kopfes (<head></head>) die Anweisung <?php wp_head(); ?> eingebunden werden. Die Anweisung <?php wp_footer(); ?> sollte unten, aber noch vor dem abschließenden Body-Tag (</body>) untergebracht werden.

Diese beiden letzten Anweisungen werden von der offiziellen Stelle empfohlen um eine vollständige Plugin-Funktionalität zu garantieren. Falls du dich dazu entschließen solltest Kopf & Fuß auszulagern, dann bindest du sie an der entsprechenden Stelle mit <?php get_header(); ?> bzw. <?php get_footer(); ?> ein.

So, nun ist die index.php fertig und nachdem wir sie abgespeichert haben, speichern wir sie auch nochmal unter page.php ab. Die page.php ist zuständig für die sog. Pages (statische Seiten). Nun können wir das Template hochladen und aktivieren.

Jetzt gehen wir für eine Zeit lang in die Administrationsoberfläche des Weblogs und zwar in den Bereich “Seite schreiben”. Da der Kunde die Hauptseiten (erste Ebene) in bestimmter Reihenfolge aufgelistet haben wollte, bleibt uns nur die Möglichkeit sie nach der ID (fortlaufende Nummer in der Datenbank) zu organisieren. Daher ist es wichtig die Pages in richtiger Reihenfolge einzutragen.

Nach dem wir die 7 Pages eingetragen haben, erscheinen diese in der Reihenfolge in der wir sie erstellt haben. Hier ein fiktives Beispiel um es zu verdeutlichen:

  • Startseite
  • Agentur (*)
  • Dienstleistungen (*)
  • Referenzen (*)
  • Kunden (*)
  • Angebote
  • Impressum

Im obigen Beispiel habe ich die Hauptseiten die Unterseiten haben mit “*” gekennzeichnet.

Jetzt gehen wir zu den Optionen und machen mit Hilfe der “Permlinks” lesbare bzw. “sprechende” URLs. Also aus www.domain-name.de/index.php?page=5 wird dann www.domain-name.de/angebote/.

So weit so gut. Das Template steht, die Hauptnavigation wird auf allen Seiten automatisch genereiert und angezeigt und schöne URLs haben wir auch. Aber eine Kleinigkeit fehlt noch. Rischtisch! Die sekundäre Navigation und die Unterseiten. Jetzt greifen wir zu der Möglichkeit – ich habe es seit längerem angekündigt 🙂 – bei den Pages mit versch. Templates zu hantieren.

Das ist ganz einfach und tut überhaupt nicht weh :-). Als erstes öffnen wir die page.php im Editor und speichern sie als agentur.php ab. Ganz am Anfang der Datei fügen wir den folgenden Code ein:

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

Und dort wo die sekundäre Navigation aufgelistet werden soll, fügen wir folgenden Code ein:

<?php wp_list_pages(' sort_column=menu_order&title_li=&child_of=2' ); ?>

Nun speichern wir als erstes die Datei ab und fragen uns was das soll. Bei dem ersten Codefragment signalisieren wir WordPress, daß es sich hierbei um eine Datei handelt die für bestimmte Pages zuständig ist. Wenn wir jetzt die agentur.php hochladen und eine neue Page erstellen wollen, können wir ab jetzt wählen ob wir das Standardtemplate (page.php) oder Agentur-Template (agentur.php) einsetzen wollen.

[adrotate group=”5″]

Das zweite Fragment ist zum großen Teil bekannt (siehe oben), aber der letzte Parameter child_of=2 ist sehr wichtig, den hiermit werden alle Unterseiten von der Hauptseite “Agentur” ausgegeben. Die 2 ist die ID von “Agentur”. Um es an einem weiteren Beispiel zu verdeutlichen:

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

<?php wp_list_pages(' sort_column=menu_order&title_li=&child_of=3' ); ?>

Dies wären die Fragmente welche wir in noch zusätzlich für die Datei dienstleistungen.php notieren müssen. So ähnlich verfahren wir auch mit den anderen Page-Templates (referenzen.php und kunden.php) und laden sie anschließend hoch. Dann wechseln wir wieder in den Adminmodus und fügen in “Seite schreiben” die Unterseiten ein. Dabei müssen wir beachten, daß die Pages die richtigen Templates zugeweisen bekommen: “Agentur” und die entsprechenden Unterseiten müssen als Template “Agentur” haben. Auch ist es wichtig, daß die Unterseiten die richtige Hauptseite als “Übergeordnete Seite” bekommen.

Nun, ich hoffe ich habe das ganze verständlich genug geschrieben. Auf jeden Fall haben wir mit relativ wenig Aufwand WordPress auf einen ganz individuellen Anspruch angepasst. Gut, man könnte natürlich jetzt stundenlange Diskussion führen ob das ganze Sinn macht, aber um es abzukürzen … ja, für mich ja :-).

Spaß beiseite und nochmal zurück zum Thema … wo sind wir stehen geblieben? Ach ja, mit wenig Aufwand haben wir eine sehr gute online-Lösung zum verwalten von Inhalten. Gewiss, man muss ein bißchen vorrauschauend sein beim anlegen neuer Haupt- und Unterseiten, aber am sonsten haben wir trotz der Anpassungen die volle Funktionalität von WP behalten. Plugins funktionieren und wenn man es will, kann man auch die Weblogfunktionalität reintegrieren.

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

87 Kommentare

  1. […] WordPress als CMS: zweites Beispiel 20:45 | In WordPress, Links, Blogs, Webdesign | […]

  2. […] Wer WordPress als CMS ohne Weblog-Funktionalität nutzen will, und eine solche Nutzungsart liegt nahe, wird von Perun in den Bau eines solchen Systems eingeführt. Die Schritt-für-Schritt-Einführung enthält viele Tipps, welche die Arbeit wesentlich erleichtern können. 09.07.2005: ster | Tools | Druckversion | […]

  3. Super, hier habe ich endlich den Hinweis gefunden, wie ich Pages nach ihrer ID sortiert anzeigen kann.. DANKE! 🙂
    Was mir aber noch nicht ganz klar ist: Gibt es einen Unterschied zwischen der Page ID (die fortlaufend ist) und der Nummer unter “Reihenfolge”, die ich bei “Seite bearbeiten” selber vergeben kann?

  4. danke!
    sowas kann ich grad jetzt sehr gut gebrauchen.
    mal sehen ob ich meinen chef am montag davon überzeugen kann, ansonsten muss ich mich mit mambo auseinandersetzen und das wollen wir ja nicht…. 😉

  5. […] Perun zweiter Teil seines Artikels: WordPress als CMS: zweites Beispiel […]

  6. Vielen Dank für die tolle Beschreibung! Mal wieder viel dazugelernt!
    Ist die fertige Seite schon online? Kannst Du hier mal die URL posten, damit man sich das mal ansehen kann?

  7. Wie is das denn dann mit dem ACP? Muss das dann auch neu geschreiben werden?
    Ich denk schon, sonst hat der Kunde viele Links mit denen er nichts anfangen kann.

  8. ACP ist die Abkürzung für Admin Control Panel, also der Administrationsbereich…

  9. […] Grad bei Vladimir Simovic (aka Perun) entdeckt: wie man WordPress als CMS (Content Management System) einsetzen kann. Fachlich versiert und wunderbar einfach erklärt: erstes und zweites Beispiel […]

  10. […] WordPress als CMS: zweites Beispiel […]

  11. Da scheint mir eine Markierung für Aufzählung (ul) zu fehlen. Ich musste das bei meinem Layout folgendermaßen ändern:

    <ul><?php wp_list_pages('sort_column=menu_order&title_li=&child_of=2' ); ?></ul>

    Ciao

  12. @Clemens,

    nein die fehlt nicht, die habe ich im ersten Beispiel aufgeführt (siehe ganz oben) und dann nicht mehr, weil ich mich auf das wesentliche (den PHP-Code) konzentrieren wollte.

  13. WordPress als CMS

    Perun hat auf seinem WordPress Blog zwei sehr schöne Artikel, in denen er beschreibt, wie man WordPress auch sehr leicht als CMS “missbrauchen” kann. Sehr zu empfehlen!

  14. Vielen Dank für deine Anregungen, die dazu geführt habe, dass ich die Programmierer von Serendipity (hoffe darf die kleine Konkurrenz nennen 😉 ebenfalls anregen konnte, hier ein bisschen weiterzuarbeiten und z.B. die Funktion der statischen Seiten weiter auszubauen.
    Ohne deinen Artikel hätte ich ja sowas gar nicht überlegt!

  15. […] WordPress als CMS: zweites Beispiel (d) […]

  16. […] Im Grunde genommen basiert der Aufbau zum großen Teil wie ich es in den zwei Beispielen (1 und 2) beschrieben habe. Als Fundament dienen Pages, für die jeweiligen Hauptbereiche bzw. Hauptpunkte (horizontale Navigation) bekommen die Pages ein neues Page-Template zugewiesen um das Aussehen der Sidebar und den Zustand der Hauptnavigation (Unterpunkte-Übergreifend) zu steuern. Gewiss, um die Sidebar zu steuern könnte man auch auf Plugins zugreifen, aber so lange der Aufwand nicht zu groß ist löse ich die Problemstellungen lieber mit Boardmitteln. Immerhin lernt man so die Software und ihre Fähigkeit besser kennen. […]

  17. Guten Tag,

    ich habe auch vor gut ein paar Stunden erst die Funktion entdeckt, die untergeordneten Pages einzublenden. Allerdings soll bei mir, je nach Auswahl der übergeordneten Page die Sub-Pages folgen.

    wp_list_pages(‘child_of=3&title_li=’);
    –> bringt mir nur eine Ausgabe der Sub-Pages von der ID 3.

    Kann man diese “3” durch eine Variable ersetzen und wenn die pAge mit der ID 5 aufgerufen wirdn, dann werden eben nur die Sub Pages von ID=5 aufgerufen ?

    BIn für jede HIlfe sehr dankbar 😉

  18. […] Ich glaube ich werde dafür WordPress verwenden. Das System, dass auch bei dirkmeister.de zum Einsatz kommt. Die Idee haben ich durch diese beiden Beträgen (eins, zwei) von http://www.perun.net bekommen, die den Einsatz der eigentlichen Blogsystems als CMS erklären. Ich bin gespannt wie sich das System bewähren wird. […]

  19. @Perun Bin heute auf diesen Artikel und deinen ersten, hier bei dir gestossen. WordPress als CMS zu nutzen ist ein sehr interessanter Ansatz. Vielen Dank dafür!

  20. @Perun und Jan Schmidt

    Die angegebene Option sort_column=menu_order in der Funktion wp_list_pages sortiert nach dem Feld Reihenfolge im Adminbereich und nicht nach der ID. Deswegen ist es nicht nötig, die Seiten in der gewünschten Reihenfolge einzugeben. Man kann sie also nachträglich umsortieren.

    Sollte man in dem sonst hervorragenden Tutorial noch klar herausstellen.

  21. Hallo,
    ich bin eifriger Leser Deiner Tipps – und sie haben mir schon sehr geholfen das Ganze “system” ein wenig besser zu verstehen. Ich möchte grad für einen Freund eine private kleine Site bauen die er später selbst mit Inhalten nach belieben füllen kann.
    Dazu bietet sich WP geradezu an als CMS benützt zu werden.
    Danke erstmal für die bisherigen Tipps!!!
    Nun noch zwei Fragen:
    1. Navigation
    Dein Beispiel mit den Pages ist Spitze und funktioniert auch wie man sieht.

    Aber nun möchte ich das gleiche Prinzip für “Category” – und das klappt bei mir nicht.:mad:

    2. Gästebuch
    Ich finde es schön wenn die Einträge durchnummeriert sind. Sieht gut aus und ist manchmal auch praktisch.
    Ich habe dort z.Z. die Einträge gelöscht – es waren ja nur Tests.
    Wenn man dort nun einen Eintrag macht fängt der mit 9 an – die 8 davor sind ja gelöscht. Und wenn man einen mitten drin löschen muß (was ja auch vorkommt) sind Lücken in der Nummerierung.
    Kann man das irgendwie umgehen?

  22. Hallo,
    super Tutorial – vielen dank! Mach mich grad schlau wie ich ein cms mit WordPress umsetzen kann und deine Beschreibung hat mir sehr weitergeholfen.

    Was mich doch sehr interessieren würde: wie sieht denn die beschriebene Seite aus? Möchtest du nicht einen Link posten?

  23. meine Band – Patrick’s Snake – ihre Homepage…

    yupp, jetzt ist sie online!
    Da habe ich schon letzten Sommer bei Perun gelesen, wie man wordpress als CMS einsetzt. Ich dachte mir damals schon, daß dies wohl die Lösung für unsere Bandwebseite werden wird.
    Allerdings wurde es dann viel einfacher, als…

  24. Hallo Welt!…

    Der erste Artikel auf der neuen Fast Agent Webseite.

    ……

  25. Tolles Tutorial Perun! Ich lese seit einiger Zeit gerne in deinem Weblog und versuche mich gerade das erste Mal an einem WordPress-Weblog als CMS. Dabei fand ich jedoch die Art für jedes Untermenü ein eigenes Template zu erstellen, sehr umständlich. Schließlich muss ja nicht zwangsläufig ein neues Design her.
    Um z.B. das jeweilige Untermenü in der sidebar einzublenden kann man das Ganze auch so lösen:

    <?php if(is_page(‘5′,’8’) ) : ?>
    <h2>Untermenü
    <ul class=”menublock”>
    <?php if(is_page(‘5’)) wp_list_pages(‘sort_column=menu_order&title_li=&child_of=5’); ?>
    <?php if(is_page(‘8’)) wp_list_pages(‘sort_column=menu_order&title_li=&child_of=8’); ?>
    </ul>
    <?php endif // is_page() ?>

    In diesem Fall haben nur die Pages 5 und 8 Unterseiten und nur dort werden auch die Untermenüs eingeblendet. Ist doch eleganter, oder? 😉

    Oder habe ich da etwas nicht bedacht…

  26. Hallo Zodiac,

    Ist doch eleganter, oder?

    Normalerweise ja, aber im konkreten Fall nicht.

    Es ist von Fall zu Fall unterschiedlich ob eher if-Abfragen oder Pages mit unterschiedlichen Templates von Vorteil sind. Nehmen wir mal an du hast 4 versch. Arten von Unterseiten und die haben alle ein bißchen anderen Aufbau in … nehmen wir mal an der zweiten Sidebar.

    OK, du könntest jetzt dafür einen if-Konstrukt oder ähnliches bemühen und vor allem müsstest du den Konstrukt jedes mal erweitern wenn eine neue Unterseite dazu kommt bzw. anpassen, wenn eine wegkommt und eine andersartige dazu kommt.

    Oder du erstellst einfach 4 marginal unterschiedliche Page-Templates und beim erstellen neuer Unterseiten wählst du einfach in der Auswahlliste das passende Template aus.

    Im konkreten Beispiel war es ein Kunde der keine Kenntnisse über XHTML, CSS und PHP hatte. Ich konnte ihm nicht zumuten, wenn er eine Unterseite verschieben oder eine neue erstellen will, dass er dann den if-Konstrukt erweitert bzw. anpasst.

  27. An die Erweiterbarkeit habe ich nicht gedacht. Du hast Recht. Wenn der Kunde die Site selber um eine Unterseite ergänzen will, dann ist dein Weg über die Templates auf jeden Fall einfacher, da er nichts im Quelltext ändern muss. Er wählt einfach das Template an.

    Ich wusste doch, dass ich irgendwas nicht bedacht hatte… 😉

  28. was ich an der ganzen sache noch nicht so recht verstanden habe:

    wie bekomme ich den inhalt auf die indexseite?

    also die seite http://www.meinedomain.de

    da stehen bei mir immer die blogeinträge. weil dort keine vorhanden sind kommt ein suchfeld.

    wie ordne ich der indexseite eine “page” zu? oder hab ich das ganze überlesen?

  29. @mützenmann,

    die einfachste Lösung ist es für die Startseite einen bzw. den ersten Blogbeitrag zu “opfern”. Eine andere Möglichkeit wäre innerhalb des Codes zu arbeiten und folgendes in der index.php zu notieren:

    <?php /* If this is the frontpage */ if ( is_home()) { ?>
    ... deine Angaben ...
    <?php } ?>

    Oder du versucht es mit diesem Plugin.

  30. […] Gerade eben, habe ich ein Plugin für Leute entdeckt, die entweder WordPress als CMS einsetzen (1, 2) oder einfach ziemlich viele Pages im Einsatz haben. Mit dem Plugin ist es möglich an einer zentrallen Stelle für mehrere Pages gleichzeitig die Reihenfolgen und die "Verwandschaftsverhältnisse" (wer ist die Unterseite und wer ist die Ursprungsseite) zu verwalten. […]

  31. Hallo Vladimir,

    erstmal muss ich dich Loben für dein wirkliches tolles Weblog. Die ganzen tutorials und wordpress-layouts hätte ich nicht fertig gebracht. Dieses Tutorial hat es in sich! Es hat zu einen ganz großen Schritt meiner Karriere-Laufbahn im Web beigetan.
    Respekt!
    Grüße,
    Michael

    PS: verwaltet und erstellt der Kunde bei dir selbst die Seiten mit den Inhalten? Schließlich müsstest du ihn dann auch einiges zeigen! ich bitte um antwort! Wäre nett.

  32. WordPress als CMS nutzen…

    WordPress kann als Content Management System, kurz CMS genannt , genutzt werden. In diesem Artikel geht es um die Grundüberlegungen, bevor man sich der Technik widmet. Was muss das Content Management System können, wofür braucht man es. …

  33. […] In zwei meiner früheren Berichte habe ich anhand zwei Beispiele (1 und 2), die Möglichkeit vorgestellt WordPress auch als klassisches CMS einzusetzen. Bei Gelegenheit werde ich diese zwei Berichte aktualisieren. Nun mache ich mir schon seit sehr langer Zeit Gedanken darüber wie man die Verwaltung von Newsletter und WordPress zusammenbringt und da gibt es einige Möglichkeiten und Ansätze die man verfolgen könnte. […]

  34. Auch von mir ein “herzliches Dankeschön” für diesen Beitrag: Sehr hilfreich obwohl auf das notwendigste reduziert. Auch das will gekonnt sein. Allerdings stolpere ich bei der eigenen Umsetzung an der Template-Seite: Verwende ich ein solches Template zur Darstellung einer bestimmten Kategorie von Blogeinträgen, wird das more-Tag nicht wie gewünscht in einen Link respektive Anker umgewandelt, sondern in ein a-Tag mit der Klasse class=more-‘id des Beitrags’ ud ich sehe immer den ganzen Eintrag. An wen kann ich mich mit so einem Problemchen wenden?:?:
    LG HEiko

  35. Hallo Perun.

    Ich hab eine Frage zur Nutzung von WordPress als CMS. Auf meiner Website nutze ich WordPress ganz normal als Blog. Allerdings enthält die Site auch noch statische Seiten, die ich ungern als Page im WordPress einbinden möchte. Meine Frage ist, wie man die WordPress-Funktionen, speziell die Suchfunktion aus der Sidebar einer solchen statischen Seite aufrufen kann. Das würde mir die Mühe sparen, den ganzen Content zu verlagern. Vielen Dank schonmal und Lob für Dein Blog. Ist wirklich sehr informativ, grade was das Basteln an WordPress angeht. Hat mir schon oft geholfen. Bin ein grosser Fan von WP. Mit dem System kann man wirklich sehr viel anstellen und es erleichtert ungemein die Arbeit. mfg Markus

  36. Super Anleitung, habe ich auch schon in der Praxis angewendet. Jetzt sitze ich gerade an einem Projekt, das auch mit ein paar Templates funktionieren soll. Dabei habe ich mir auch schon ein html template gebastelt, dass habe ich aber so angelegt, dass die Kinderseiten in ein
    li Element von der Elternliste verschachtelt sind. Und das kriegt man wohl nicht hin, da ja der Ausdruck ne ganze Liste ausspuckt und man sich nicht dazwischen drängeln kann. Bin gerade etwas verzweifelt…

    Trotzdem herrvoragende Instruktionen, die Du hier ablieferst

  37. In der U-Bahn ist mir dann eingefallen, wie es gehen könnte.

    Ich hoffe nicht so wirr geschrieben zu haben, das keiner versteht worum es mir geht.
    Also ich möchte das die Hauptliste auf einer Unterseite unterbrochen wird und sich eine Unterliste einschiebt, danach aber wieder die Hauptliste fortgeführt wird. Ein Beispiel wäre dafür die Menüführung der Kanzlei Siebert. Erreicht habe ich das jetzt mit dem Parameter exclude, der es mir ermöglicht die listenpunkte nach ID auszusortieren. Das mache ich einmal in der oberen Hälfte und einmal unten, dazwischen füge ich die Childliste ein, that’s it. Die Navigation in das Template für die Unterseite einfügen, klappt wunderbar.

  38. […] WordPress als CMS: zweites Beispiel […]

  39. […] WordPress als CMS nutzen Andy Peatling stellt fünf WordPress-Plugins vor, die das Blogsystem in der Bedienung weiter in Richtung CMS treiben. So kann man dank der Plugins nachher eine beliebige Seite zur Startseite machen oder die Nutzerrechte sehr viel feiner einstellen, als die normale Rechteverwaltung dies erlaubt. Die Plugins sehen allesamt sehr interessant aus. Interessante Artikel zum Thema “Wordpress als CMS” finden sich bei Software-Guide, der Netzspielwiese, Perun (erster Teil, zweiter Teil) und bei PHPit (erster Teil, zweiter Teil). [via F-LOG-GE ] […]

  40. […] Für eine erste Unternehmenspräsentation eines Kunden haben wir WordPress als kleines Redaktionssystem eingesetzt. Die Blogfunktion wird für aktuelle Nachrichten bzw. für das Nachrichtenarchiv genutzt, alle Content-Seiten sind als statische Seiten angelegt und können problemlos editiert werden. Mit etwas Hilfe, zu finden u.a. in peruns weblog (über die Möglichkeit zusätzliche Templates für die statischen Seiten einzubinden) […]

  41. Hallo Perun,
    danke für das tolle Tutorial. Da dachte ich schon, eine geniale Idee gehabt zu haben, bis mir die Kommentare Nr. 21 und 32 ins Auge fielen. Nichtsdestotrotz. Ich denke, eine gescriptete Lösung, die automatisch anhand einer Variable die entsprechenden Unterseiten listet, so dass man im Standardfall nur ein zusätzliches Template bräuchte, wäre genial. Denn es würde aus meiner Sicht WP zu einer wirklichen CMS-Alternative machen. Die Lösung von Zodiac ist mir dabei noch zu viel Code. Falls du oder jemand anderes eine Idee zu Lösung hätte, wäre das klasse. Ansonsten mache ich mir mal Gedanken…

  42. Hallo Perun,
    dein Tutorial beschreibt genau das Thema, nachdem ich lange gesucht habe, um WP als CMS einzusetzen. Ich habe versucht die default Dateien anzupassen komme aber als PHP Neuling mit den einzelnen Codefragmenten nicht ganz klar.
    Meine Bitte, kannst Du für die eingesetzten Dateien den kompletten Quellcode veröffentlichen oder als Download anbieten ?
    Wäre super !

    Auch bei den Permalinks bin ich nicht sicher ob diese so stimmen:
    Benutzerdefiniert: /%category%/%year%-%monthnum%/%postname%

    Besten Dank im voraus !

  43. Hi,
    so, ich habe eine Lösung zu meiner Frage gefunden und erfolgreich getestet. Das Tutorial dazu ist erreichbar durch Klick auf meinen Namen. Ich hoffe, es nützt einigen.

  44. Boah, das ist aber wirklich hilfreich! Man bekommt ein CMS ohne viel Zeit zu investieren, so lassen sich kleine und mittlere Projekte leichter abwickeln. Sehr interessant finde ich beide Artikel, es wäre aber schön zu sehen zu bekommen was daraus entstanden ist 🙂

  45. WordPress als CMS…

    Bisher habe ich was CMS Systeme betrifft auf Joomla gesetzt. Zwei Seiten die ich mit Gregor beruflich betreibe werden demnächst auf WordPress umgestellt. WordPress als CMS zu benutzen hört sich im ersten Moment ein wenig strange an. Ich glaub…

  46. […] Eigentlich habe ich eher mit der Entwicklung von Windows-Desktop-Applikationen als mit Web-Projekten zu tun. Dennoch habe ich nun selbst die Website neu aufgezogen, und zwar auf Basis von WordPress. WordPress ist eigentlich für Weblogs gedacht, eignet sich aber auch gut für die Einbindung statischer Seiten und bietet sich damit als CMS an. […]

  47. Hi Perun,

    ersteinmal dickes Lob für Deine Seiten, hat mir schon des öfteren neue Wege aufgezeigt, wie man WordPress als CMS einsetzen kann. Vielen Dank schon mal dafür.

    Zu diesem Posting und zum Thema Erweiterbarkeit:

    Nach Deinem Ansatz müsste es dann ja so laufen, dass wenn ein neuer Menüpunkt in der Hauptnavigation erstellt wird, auch ein neues Template mit der passenden ID in Subnavigation erstellt werden muss.

    Da müsste dann ja wieder der Programmierer ran und die Site erweitern.

    Geht es nicht auch, dass die aktuelle Parent-ID abgefragt wird und dann dementsprechend die Child-Elemente ausgegeben werden? (Ähnlich wie Frank D. das vorgeschlagen hat, nur ohne if-Abfrage für die Child-Elemente)

    folgendes habe ich auf den WordPress-Codex-Seiten gefunden:

    <?php
    $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
    if ($children) { ?>
    <ul>
    <? php echo $children; ?>
    </ul>
    <?php } ?>

    oder gilt dies nur für Postings?
    So könnte man ja noch einen zusätzlichen Oberpunkt einfügen, ohne dass man dazu wieder ein Extra Template schreiben müsste.

    Dies würde die Site dann um einiges flexibler machen. Ansonsten wäre die Struktur der Hauptmenüpunkte ja sehr statisch.

    Ausprobieren konnte ich das bisher leider noch nicht. Wird in nächster Zeit auch wohl nichts werden, da mein Internet-Anschluss zuhause durch einen Umzug nicht mehr verfügbar ist 👿

    Vielleicht kann das ja mal einer von Euch probieren…

    Viele Grüße,
    Eddie

  48. Hi nochmal,

    bei meinem vorherigen Beispiel gibt das Blog einem die anderen Unterseite nicht mehr aus, wenn man sich selbst auf einer Unterseite befindet.

    Die Child-Elemente sind also nur sichtbar, wenn man sich auf einer Hauptseite befindet.

    Folgendes sollte das beheben:
    (siehe » WordPress Codex)

    <?php
    if($post->post_parent)
    $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0"); else
    $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
    if ($children) { ?>
    <ul>
    <?php echo $children; ?>
    </ul>
    <?php } ?>

    Folgendes gilt zu beachten:

    warning ** This code will not work if placed after a widget block in the sidebar.

    Viele Grüße,
    Eddie

  49. Könntest du vielleicht ein Beispiel wordpress Theme uploaden und als Beispiel zu Verfügung stellen? Bin nicht wirklich ein phpler, aber würde das gerne testen.

  50. […] sw-guide.de, perung.de, […]

  51. Ich bin gerade in den letzten Wochen immer wieder WordPress begegnet auf meiner Suche nach einem sowohl als Blog- wie auch als CMS-Tool nutzbarem System. Aber vor allem die Beiträge hier in diesem Blog haben dazu geführt, dass wir nun baldmöglichst die ersten Projekte mit WordPress umsetzen möchten.

    Herzlichen Dank für die ausführlichen und gut nachvollziehbaren Infos! 🙂

    Viele Grüße,
    Sonja

  52. Hallo, ich habe mich schon oft gefragt, wie man aus WP am besten ein einfaches CMS machen kann. Deine beiden Artikel haben mir dabei sehr geholfen! Danke für die Darstellung.

  53. Hi. Für mich als WP-Neuling sind erstes und zweites CMS-Beispiel Gold wert. Aber damit kommt auch gleich ne Frage, die die Kinder und Kindeskinder in der Navigation betrifft:
    Für ein Projekt brauche ich folgende Navigation mit 3 Ebenen:
    4 Seiten Ebene 1, die sollen oben quer laufen (hab ich auch hinbekommen 😉
    Auf jeder Seite der Ebene 1 brauche ich eine eigene Unternavigation (Ebenen 2-3 in einer Column (sogar das klappt).
    Wenn ich mich aber auf Ebene 3 befinde, möchte ich in der Coloumn immer die Ebenen 2(!) und 3 angezeigt haben, also nicht nur aktuelle und Childs sondern auch eine, und nur eine Ebene darüber.
    Aussehen solls dann zb. so:
    1 Link
    —— 1.1 Unterlink (aktive Site)
    —— 1.2 Unterlink
    2. Link
    —— 2.1 Unterlink
    —— 2.2 Unterlink
    3. Link
    Da funktioniert die Childnummer wie oben becshrieben nicht mehr.
    Perun oder anybody else: könnt Ihr mich retten? sonst schlafe ich heute nacht wieder nicht … Danke!

  54. “Alles was mit Kommentaren zu tun hat kommt weg. Daher ist es auch nicht notwendig z. B. die comments.php hochzuladen bzw. zu erstellen.”

    Wenn man bereits ein vollständiges Theme hat, aber daraus ein CMS machen will, wo muss man noch was entfernen, damit keine Kommentare möglich sind?

    Danke!

  55. der artikel ist eine gute hilfe, danke! für komplexe menus finde ich “fold_page_list” praktisch.

    ist es möglich via wp_list_pages einen separator einzufügen, wie “|” oder “+” .. wenn ja wie? brauche ich immer wieder z.b bei footer menus.

    danke!

  56. Tolle Anleitung. Kleines Problem hab ich noch was die sekundäre Navigation angeht.
    Und zwar soll im Beispiel die “2” bei “” ja die ID der Page “Agentur” sein. Hab jetzt Pages angelegt finde aber keinen Hinweis darauf welche ID die Pages haben?
    Geht bei mir auch über Permalinks, aber mit denen geht es auch nicht?!

  57. Tolle Anleitung. Kleines Problem hab ich noch was die sekundäre Navigation angeht.
    Und zwar soll im Beispiel die “2” bei “” ja die ID der Page “Agentur” sein. Hab jetzt Pages angelegt finde aber keinen Hinweis darauf welche ID die Pages haben?
    Geht bei mir auch über Permalinks, aber mit denen geht es auch nicht?!

  58. Hallo, leider funktioniert das nicht ganz im WP 2.7. Gibt es hierzu einige änderungen? Würde mich wirklich total dolle freuen wenn du mir weiterhelfen kannst.

    Grüße

  59. Hallo,

    ich habe auch den 2. Beispiel Coder aus den Kommentaren genommen.

    Ich habe zum bsp. einen Button Media darunter befindet sich downloads und presse.

    Klicke ich auf Media sehe ich das Untermenü mit den beiden Unterpunkten.
    Klicke ich aber auf den Unterpunkt verschwindet das Menü.
    Somit kann ich nicht gleich vom 1. Menüunterpunkt zum 2. springen, ich muss immer wieder auf media klicken.

    Wie bekommt man das nun hin das man wieder nach dem klick auf Downloads auch weiterhin das Untermenü sieht und das es nict verschwindet?

    Danke!

  60. […] als CMS: ein Beispiel – Teil 2 – (Artikel von […]

  61. Wir nutzen WordPress auch häufig als Redaktionssystem für unsere Kunden. Der Grund ist simpel, bei großen CMS wie Typo3, wissen die Eigentümer oft nach einigen Monaten ohne Änderung nicht mehr wie es funktioniert. WordPress ist da so einfach, das selbst ältere Semester damit klar kommen. Guter Beitrag….

  62. Mal eine ganz blöde Frage 😉
    Ist das eigentlich erlaubt, wordpress für professionelle Zwecke zu nutzen? Also z.B. für Kundenprojekte.
    Oder wird das eher nur geduldet?
    Vielen Dank für die Antwort!

    1. @Kathy,

      die Nutzung von WordPress für kommerzielle Projekte wird mit Strafen nicht unter lebenslänglicher Einzelhaft bestraft. 🙂 Warum sollte der Einsatz von WordPress bei kommerziellen Projekten verboten sein?

  63. Ups … doch so harte Strafen 🙂

    Ich habe das irgendwo mal gelesen. Schön, dass es nur Blödsinn war und vielen Dank für die Antwort !!!

  64. @Perun:

    herzlichen Dank für Deine hervorragenden Infos rund um dieses Thema. Großartig! Mir haben die Ausführungen erst den entscheidenden Kick gegeben, um von statischem html und so einigen includes auf wordress umzusatteln.

    Ein Problem bekomme ich jedoch nicht in den Griff:
    *** Gibt es irgendwo schon eine Lösung für folgende Aufgabe? ***
    Ich benutze für die Menü-Darstellung (7 Hauptseiten mit etlichen Kinder- und Enkelseiten) in der sidebar das plugin “dynamic subpages” (http://wordpress.org/extend/plugins/dynamic-subpages/). Dies ist das einzige, das ich kenne, das genauso funktioniert, wie das aufklappende Menü einer normalen CMS-Website. Allerdings arbeitet es nicht zusammen mit “WordPress SEO” oder “All in One SEO Pack”. Dynamic subpages akzeptiert keine link-titels und menu-labels (gerade die sind mir sehr wichtig)
    #meine PHP-Skills reichen nicht aus, um code selbst zu bauen, um Code selbst z.B. in ein php-fähiges Text-Widget zu schreiben
    #scripts, die ich gefunden habe listen entweder alle Seiten mit oder ohne Kinder und Enkel-Seiten auf oder nur die der aktuelle Seite. Auf der zweiten Ebene findet man sich dann ohne breadcrumbs nicht mehr zurecht.

    Bin dankbar für jeden Hinweis. Danke im Voraus.

Kommentare sind geschlossen.