Top Secret

Wohl jeder WordPress-Nutzer kennt das. Man möchte in Ruhe ein neues Theme testen oder an diversen Details der Seite basteln und schon hagelt es Kommentare zum neuen Outfit, welches meist noch gar nicht das Endgültige ist. So gesehen derzeit beim Macoholic, der momentan wieder auf der Suche nach einem neuen Frühlingskleidchen für sein Blog ist. Wenn das Feedback gewollt ist, ok. Schraubt man aber lieber in Ruhe, sollte man auf das Admin Theme Preview Plugin zurückgreifen, welches die Ansicht eines Themes auf den Admin des Blogs beschränkt. Was aber, wenn man nur wenige oder auch aufwändigere Details seiner Seite ändern möchte?
In diesem Fall behelfe ich mich mit einem kleinen Trick, den ich sonst nutze, um Menü-Einträge auf spezielle Benutzergruppen des Blogs zu beschränken. Diese Benutzergruppen besitzen in WordPress sogenannte Userlevel. Der Administrator wird gar mit drei Level bedacht, und zwar 8,9 und 10. Letzterer ist Standard. Diese Userlevel werden nun abgefragt, was natürlich nur funktionieren kann, wenn der Besucher als User registriert und im Blog angemeldet ist. Als Beispiel seht ihr hier meine Bastelei vom Wochenende, bei der ich flickrRSS eingebaut und dabei am CSS gefeilt habe:
<?php global $user_level; get_currentuserinfo(); if ($user_level > 8) { ?>
<div class="flickr">
<?php if (function_exists('get_flickrRSS')) get_flickrRSS(); ?>
</div>
<?php } ?>
Mit Zeile 1 und 5 gibt man vor, dass alle User mit einem Level > 8 die Funktion nutzen können. Das sollte eigentlich auch mit > 7 funktionieren, doch irgendwo habe ich das mal so übernommen und anscheinend hatte derjenige, der sich das ausgedacht hatte, feiner abgestufte Userlevel.
Ist man mit der Schrauberei fertig, entfernt man einfach die Funktion und schon kann jeder Besucher sehen, was ehemals Top Secret war.
Übigens: Den Code hätte ich gerne in den Beitrag eingebunden, habe aber auf die Schnelle keine Möglichkeit gefunden. Selbst diverse Plugins wollten damit nicht klar kommen. Tipps? [gelöst]
Tipps? Vielleicht das Plugin Preserve Code Formatting?
Warum nicht auf einem Testsystem schrauben? Mit XAMPP und Konsorten sollte das Aufsetzen eines AMP-Systems mittlerweile eigentlich für nahezu jeden kinderleicht sein.
Ich bekomme immer Bauchschmerzen, wenn am offenen Herzen (Livesystem) herumgedoktort wird.
Themes auf einem Testsystem zu testen finde ich nur sinnvoll, wenn man dort auch die selben Daten (sprich Beiträge und Kommentare) hat, wie im Live-System. Sonst sieht es hinterher dann doch anders aus.
Klar, das Testsystem sollte möglichst den aktuellen Livestand widerspiegeln.
Da man aber immer regelmäßige Backups macht, sollte das mit dem aktuellen Testsystem doch kein Problem sein
Vielleicht mal auf der Seite einbinden
http://pastie.caboo.se/
Wenns net hilft, auch gut.
Gleiches kann man übrigens mit
if (current_user_can(‘level_8′)){ bla }
erreichen. Gefällt mir persönlich besser da leichter zu merken, und mann muss auch nicht extra die global $user_level aufrufen.
Ich selbst hab lokal eine wordpress installation in die ich, sobald ich was neues ausprobiere mit der wordpress internen import/export option auf den neuesten stand bringe. das geht irre flott und attachments wie bilder und ähnlichem werden auch mit importiert.
Nee, ich schraube (auch aktuell) lieber mit dem Mamp-Server am Theme herum bis es fertig ist. Datenbank importieren ist aus kein Problem. Ein paar Änderungen an der config und in der SQL.
Für schnelle Änderungen zwischendurch gibt es ja auch noch das Maintance-Mode Plugin.
Ich halte es ähnlich und habe bisher in diversen Fällen is_user_logged_in() verwendet habe. Was ja in meinem Falle tut, da ich der einzigste sich anmeldende User bin.
Achja … schrauben tue ich eigentlich fast immer ohne Bauchschmerzen direkt am Blog, schliesslich hab ich ja nicht immer ein Testsystem dabei. Auch bin ich immer nüchtern genug zu wissen was ich da gerade tue
@Ad: Ja ich habe Blödsinn geschrieben, aber der bleibt nun drin. Keine Lust mehr zu editieren
WP stellt zum Prüfen der berechtigung eine Funktion zur Verfügung, damit wird es einfach die Recht abzufragen:
<?php if( current_user_can('level_10') ) : ?>weitere Infos in einem kleinen Artikel
Zum Code einbinden nutze ich Code Snippet, kann ich gern senden. Meine Version ist ein wenig verändert, damit auch inline-Code möglihc ist, also kleinen Codeschnippsel in Zeilen.
Das oben genannte Plugin zum Testen hat den Nachteil ,wie ich finde, das nur zum testen recht viele Daten in der Datenbank abgelegt werden, ich nutze dafür ein schlankes Plugin, was man im Vorfeld editiert, aber das ist ja schnell gemacht und damit sind keine Daten in der DB
Wo genau ist denn jetzt dabei der Unterschied zu meiner verwendeten Funktion? Habe ich das richtig verstanden, dass ich damit mit Kanonen auf Spatzen schieße oder ist die generell Murks?
Ich glaub, ich muss mal dein Buch kaufen, Frank…
Kein globalen Variablen nutzen ist immer besser. Die Funktion ist extra dafür da und kann mehr als nur die Level abfragen, was hier nicht so relevant ist für eine Verbreitung schon. Es ist in dem Sinne kein Murks, denn viele Wege führen nach Rom, aber man muss das Rad nicht neu erfinden, man muss nur wissen, wie man es nutzt und das ist ja der größte Benefit der WP-Community.
Buch – gute Idee
Dort ist dieses Thema jedoch noch mit der “älteren” Version gelöst. Besser ist current_user_can(). Das neue Buch, wenn ich es denn mal fertig werde und nicht immer neue Ideen habe, wird das aber erklären.
Der Unterschied ist, das der Aufruf einfach kürzer ist.
Der Vorteil, dass über eine direkt dafür vorgesehene Funktion auf das Userlevel zu gegriffen wird.
[Edit] zu langsam
Das neue Buch? Ok – das war ein Fehler es zu erwähnen. Da warte ich jetzt drauf.
Es ist keine Schande gegen Frank zu verlieren.
@tigion: nicht verlieren, das ist bereichernd, denn nicht nur Sicherheit spielen eine Rolle.
@ad: Buch; habe ich aber schon mehrfach erwähnt – du liest meinen Feed nicht
, lösche dich gleich aus meinem FeedReader
Doch, lese ich. Allerdings erst seit dem 28.03.08.
na dann, siehe 18.02.
bzgl. Buch: Wollte es auch nur fairerweise erwähnen, nicht das du zig Seiten dazu suchst und enttäuscht bist. Alle anderen Themen sind aber immer noch gültig.
@ ad
Was für einen HTML Editor verwendest du?
Gruß aus Hannover!
Sieht nach textmate [1] aus
[1] http://macromates.com/
Jepp, das ist er. Mehr dazu: KLICK!
Als du vergangenen Woche an den Zitaten in der Sidebar (ich glaube das war’s) geschraubt hast, konnte ich den Fehler (bzw. den fehlenden schließenden DIV-Tag) aber sehen!
Kannste mal sehen. Da hatte ich die Idee noch nicht bis in’s letzte Detail ausgearbeitet.
Code Plugin mit Geshi, Beispiel findest Du hier: http://www.switch2mac.de/2008/.....arstellen/
Das Plugin stammt von Ryan McGeary, funktioniert gut, allerdings sollte es nicht im table tag verwendet werden, da macht es unter Safari richtigen Designsalat.
ich hab da ne ganz einfache lösung für dich:
if alle schlafen (so ab 1 uhr):
echo ‘schrauben’
gute nacht! ^^
Auch wenn mein Avatar nicht das Gegenteil beweist: ich bevorzuge eine gesunde Gesichtsfarbe.
So, der Code ist jetzt “nativ” eingebaut.