Beiträge von Ammaletu

    [LEFT]

    PHP
    <?php function is_tag() {
      return false;
    } ?>

    Dir ist aber schon klar, dass ältere WordPress-Versionen ggf. Sicherheitslücken enthalten, über die das Blog gehackt werden kann?! Ich weiß nicht, wie es bei der 2.1.3 speziell aussieht, aber langfristig ist das auf jeden Fall keine gute Idee.


    Zitat

    aber ich möchte sowas lieber nicht online ausprobieren

    WordPress Deutschland FAQ Wie kann ich WordPress auf meinem heimischen Rechner installieren?
    [/LEFT]

    Ok, ich hab mich mal dran probiert, das Standard-Pages-Widget zu überschreiben. Bitte das folgende in die functions.php Deines Themes schreiben:

    Damit wird in den Kontrollen des Widgets der neue Parameter "Depth" eingefügt und das Widget wertet das für die Query mit aus. Mit depth=1 sollten nur die Seiten der ersten Ebene angezeigt werden usw.

    Du solltest hin und wieder mal schauen, ob das vielleicht auch im WordPress-Kern ergänzt wurde. Dann wäre es natürlich überflüssig, das Standard-Widget zu überschreiben. Wenn Du beide Varianten zur Auswahl haben willst, müssten die letzten Zeilen so lauten:

    PHP
    $widget_ops = array('classname' => 'widget_pages', 'description' => __( "Your blog's WordPress Pages") );
        wp_register_sidebar_widget('my_pages', __('My Pages'), 'my_wp_widget_pages', $widget_ops);
        wp_register_widget_control('my_pages', __('My Pages'), 'my_wp_widget_pages_control' );

    Und Achtung: Das ist alles ungetestet! Bitte ggf. lokal an einer Testumgebung ausprobieren, ob es so wirklich funktioniert.

    Also bei mir hat diese Datei nur 100 Zeilen, wenn sie bei Dir tatsächlich 101 hat, stimmt da vielleicht was nicht. Generell wird dieser Fehler ausgelöst, wenn eine PHP-Datei eine Ausgabe macht, wo keine gemacht werden sollte. Das kann ein Zeilenumbruch oder eine Leerzeile sein. Wenn es nicht die compat.php ist, kontrolliere mal alle Dateien, die Du geändert hast, auf solche Ausgaben, z.B. die wp-config.php oder die functions.php Deines Themes. So Sachen wie das hier:

    PHP
    ...
    ?>      <!-- Zeilelumbruch! -->
    <?php
    ...

    Hast Du im DB-Dump die alte Adresse durch die neue ersetzt? Ich nehme jedenfalls mal an, dass sich die Blog-Adresse bei der Aktion geändert hat. Ansonsten: weiße Seite = PHP-Fehler in den meisten Fällen. Bitte mal in die entsprechenden Log-Files schauen, ob sich da eine Fehlermeldung findet. Apache ist auf dem neuen Server korrekt konfiguriert?!

    Ich hab mal kurz ins Plugin reingeschaut. Es funktioniert, in dem es per WP-Hook die Query für wp_list_pages ändert. Genauer gesagt fügt es die konfigurierten Seiten dieser Query immer als exclude-Parameter an. Außer mit Trickserei oder einer eigenen manuellen Query wüsste ich nicht, wie Du das umgehen könntest. :-/

    Andere Idee: Brauchst Du das Plugin wirklich, um spezielle Seiten auszublenden im Menü, oder willst Du nur alle Seiten einer bestimmten Ebene ausblenden? Falls Du z.B. einfach nur alle Seiten der ersten und zweiten Ebene listen willst, wäre der ab WP 2.5 (?) neue Parameter "depth" an der wp_list_pages-Funktion für Dich richtig. Falls das im Widget nicht standardmäßig angeboten wird, kann man das recht einfach überschreiben. Sag mal Bescheid, ob das eher eine Lösung wäre, dann kann ich da auch näher ins Detail gehen.

    Also direkt helfen kann ich erstmal nicht. Nur als Hinweis: Wenn ein Plugin Umlaute kaputt macht, hat der Autor oft das richtige Handling von UTF-8 mit PHP nicht verstanden. Dazu gibt es eine sehr gute Seite mit vielen Infos:
    Handling UTF-8 with PHP [Web Application Component Toolkit]

    Wäre es ein zehn-Zeilen-Plugin hätte ich selber mal schnell nach der Ursache gesucht. Leider ist das Plugin doch bedeutend umfangreicher, so dass ich fürchte, dass Du selber mal schauen musst. Es sollte sich dann aber finden lassen. Schreib Dir ggf. mal Ausgaben in den Plugin-Code rein (am besten lokal mit XAMPP, siehe FAQ), so dass Du siehst an welcher Stelle die Umlaute kaputt gehen.

    Sorry, war etwas in Eile gestern. Nein, wird schon was, aber Du müsstest das dann anders anfangen. Normalerweise propagiere ich ja immer, die Originalquery nicht zu ändern und lieber eine neue Query zu machen. In dem Fall müsste man dann aber die Originalquery aufheben und nach der Schleife wiederherstellen. In etwa so:

    Damit wird innerhalb der Schleife die normale Query-Variable verwendet und die [COLOR=Black]Methoden[COLOR=#000000][COLOR=#0000CC] previous_post_link und [/COLOR][/COLOR][/COLOR][COLOR=#000000][COLOR=Black][COLOR=#0000CC]next_post_link[/COLOR][/COLOR][COLOR=#006600][COLOR=Black] funktionieren hoffentlich. Sidebar und Footer aber haben trotzdem die richtige Query, so dass Prüfungen wie is_page etc. nicht schiefgehen.[/COLOR]
    [/COLOR][/COLOR]

    Eine wirkliche Antwort habe ich auch nicht für Dich, aber ich kann das Problem nachvollziehen. Ich glaube, die Frage ist wie professionell Du das betreiben willst. Wenn Du nur hin und wieder was postest als Hobby kann man das sicher so gestalten, dass es nicht stört. Wenn Du das dagegen eher professionell und mit viel Content betreiben willst, wären zwei getrennte Blogs vermutlich besser.

    Ich persönlich bin gedanklich immer noch eher in klassischen Webseiten beheimatet und kann mich mit der Blog-Struktur nicht wirklich anfreunden. Ich habe das letzte Jahr über probiert verschiedene Themen in ein Blog zu quetschen, darunter Sachen, die nicht wirklich Blog-Einträge sind (Reviews und Kurzgeschichten). Angefangen habe ich ganz ohne Kategorien, nur mit Tags, aber so nach und nach bildeten sich dann Kategorien mit entsprechender eigener Darstellung heraus. Gerade vor ein paar Tagen habe ich nun noch meine Startseite überarbeitet, um die verschiedenen Themen deutlicher zu trennen. Du kannst ja mal schauen, ob eine solche Struktur ggf. auch etwas für Dich wäre: Startseite Delta Orionis

    In dem Fall würde ich sagen brauchst Du wenige und möglichst klare Kategorien, ggf. mit Unterkategorien. Das sind im Moment bei Dir schon fast zu viele wäre mein spontaner Eindruck. Bei Deinem Theme könnte ich mir auch eine farbliche Kennzeichnung der Kategorien gut vorstellen. Du könntest z.B. für Politisches und Rechtliches zwei Blau-Töne nehmen, für Reviews Rot-Töne und die allgemeinen Kategorien mit Grün-Tönen versehen. Und dann die Kategorie-Headlines sowie die Headlines der Beiträge darin entsprechend mit einem dezenten Farbverlauf im Hintergrund versehen zum Beispiel.

    P.S.: Fällt mir gerade noch so auf: Was Du in der Sidebar unter "Inhalte" verlinkt hast, ist ja am Anfang der Seite schon mal als Tabs verlinkt. Den Inhalte-Block würde ich deswegen auf jeden Fall unter den Kategorie-Block setzen in der Sidebar.

    Das sieht bei mir z.B. so aus:

    Einbinden kannst Du die Sidebar dann unter Angabe des vergebenen Namens:

    PHP
    if (function_exists('dynamic_sidebar')) {
        /* Display the widgetized sidebar if configured. */
        dynamic_sidebar('left');
    }

    Wie maxe schon schriebe, bitte auf jeden Fall die functions.php so ändern:

    [LEFT]

    Zitat

    Also am Template kann es nicht liegen, habe mal das Standard-Template von WordPress aktiviert, hier kommt der gleiche Fehler...

    Das war schon mal eine gute Idee. Die functions.php Deines Themes ist natürlich trotzdem falsch, aber vielleicht findet sich etwas ähnliches ja auch noch in der wp-options.php!? Hast Du andere Dateien des WordPress-Kerns bearbeitet?
    [/LEFT]

    Sieht so aus, als ob in Deinem Fall irgendwo ein Zeilenumbruch ausgegeben wird. Das kann in der wp-config.php der Fall sein, aber z.B. auch in der functions.php des Themes. Schau die Dateien noch mal im Detail an, beide dürfen nichts ausgeben! Das könnte z.B. so aussehen:

    PHP
    ...
    ?>    <-- Sieht unverdächtig aus, aber hier gibt PHP einen Zeilelumbruch aus.
    <?php
    ...

    Klar ist das machbar. Die Frage ist nur, was die beste Lösung ist. Also, wenn Du dafür jeweils mehrere Anweisungen austauschen musst und sich deshalb eigene Dateien für jedes Farbschema lohnen, könnte ich mir das so vorstellen:

    • Du erstellst ein allgemeines Stylesheet und dann ein Stylesheet für jede Farbe, welches jeweils nur diese farbbezogenen Anweisungen enthält. Also z.B. style.css und style_red.css, style_blue.css etc.
    • Jede Seite, die eine spezielle Farbe erhalten soll, bekommt ein benutzerdefiniertes Feld, sagen wir mal "Farbe" mit den entsprechenden Kürzeln der CSS-Dateien, also "red", "blue" etc.
    • In der header.php des Themes bindest Du zuerst die normale style.css wie gewohnt ein. Darunter kommt dann die Auswertung des benutzerdefinierten Feldes, in etwa so (ungetestet):

    Dabei gehe ich mal davon aus, dass der Key des Feldes "color" ist und dass die Dateien im Unterordner "css" liegen.

    Wenn es sich nur um eine einzelne CSS-Anweisung handelst, kannst Du das analog auch mit einem Style-Block anstatt einzelnen Dateien machen. Dann einfach testen, welcher Wert im Feld vorhanden ist und die richtige Farbe dafür ausgeben. Oder an die Seiten gleich den Farbwert anhängen.

    Genau kann ich es Dir ohne Link zu Deiner Seite auch nicht sagen. Aber wie es aussieht erbt das header-div seine Weite wohl vom umgebenden div, da an #header selbst ja keine Weite definiert ist (bzw. Höhe, falls unten am Bild was fehlt). Da müsstest Du also mal schauen, wo Du das anpassen kannst. Generell zeigt der Browser Dir das Hintergrundbild nur soweit, wie die Box groß ist, der es zugeordnet ist. Genauer ließe sich das sicher mit einem Link zur Seite sagen.

    Ich kenne das Plugin nicht, aber den post slug gibt es natürlich immer noch an Posts und Pages. Du musst, damit Du den auch siehst, zuerst mal eine entsprechende Permallinkstruktur einstellen. Also eine, die nicht nur die internen IDs benutzt. Wenn Du dann eine Seite oder einen Beitrag verfasst und einen Titel eingibst, sollte der aus dem Titel generierte post slug darunter in der angezeigten URL erscheinen. Gegebenenfalls erst nach dem ersten (Zwischen-)Speichern. Dort kannst Du den slug bei Bedarf auch bearbeiten.

    Was ich aber in dem Zusammenhang schon seit längerem suche - wie kann ich

    Zitat

    ein benutzerdefiniertes Feld abfragen???

    Das geht ganz einfach mit der Methode get_post_meta, z.B. so:

    PHP
    $rating = get_post_meta($id, 'my_rating', true);
    Zitat

    Ich find ihn leider nur noch etwas zu oversized

    Sieht aber eigentlich gut aus so, man kann es nur noch etwas kürzen:

    [LEFT]

    PHP
    <?php $myQuery = new WP_Query($query_string.'showposts=4&cat=4');
    while ($myQuery->have_posts()) : $myQuery->the_post();
      $loopcounter++;
      $home_image = get_post_custom_values('home_image', $postID); ?>
    <a href="<?php the_permalink() ?>"><img class="<?php echo ($loopcounter % 2 == 0) ? "even" : "odd"; ?>" alt="" src="<?php bloginfo('url'); ?>/wp-content/<?php echo $home_image[0]; ?>" /></a>
    <?php endwhile; ?>

    [/LEFT]