Beiträge von toscho

    Eigentlich funktioniert jedes Theme auch in einer Multisite. Damit das nicht geht, muss man sich schon ordentlich Mühe geben, bzw. enorm schlechten Code schreiben.

    Aktiviere doch mal den Debugmodus, und schreib die dann auftauchenden Fehlermeldungen hier in den Thread. Freunde dich aber schon mit der Idee an, dass du ein besseres Theme brauchst.

    Die .htaccess muß nicht beschreibbar sein, wenn dir bei dir vorher schon Permalinks funktioniert haben. Nur beim ersten Mal müssen die Rewrite-Regeln hineingeschrieben werden, aber selbst das kannst du manuell machen.

    »Beschreibbar« meint in diesem Kontext: PHP muß die Datei ändern können. Manchmal hat PHP dafür nicht die nötigen Rechte, dann bekommst du nach dem Umstellen aber einen Hinweis darauf und eine Vorlage, die du selbst in die Datei kopieren kannst.

    Der passende Statuscode für gelöschte Inhalte ist 410, nicht 301.
    Ein passendes Plugin kenne ich nicht, finde auch gerade keins. Ist aber einfach:

    1. Setze einen Filter auf das Löschen eines Beitrags oder einer Seite, der die alte Adresse in eine Option einträgt.
    2. Setze einen Filter auf die Ausgabe der 404-Seite, der in der eben genannten Option nachsieht, ob die Adresse darin steht.
    3. Wenn der zweite Filter einen Eintrag findet, suche nach einer 410.php im Templateverzeichnis, und gib sie aus.

    Wenn du WP_CONTENT_DIR und WP_CONTENT_URL in der wp-config.php gesetzt hast, dürfte der Originalstring in der Ausgabe nicht mehr auftauchen. Tut er es doch, hast du ein kaputtes Plugin erwischt. Das mußt du dann entweder umschreiben oder ersetzen. Und den Pluginautor würde ich auch darauf hinweisen.

    Wenn es daran liegt – welches Plugin ist es denn?

    Das Ändern der Ausgabe per Outputbuffer würde dein Problem nicht lösen, denn dann fände das Plugin einfach seine Dateien nicht mehr. WordPress selbst verwendet übrigens keinen nativen Outputbuffer, den müßtest du selbst setzen.

    Ersetze diese Zeilen:

    PHP
    include "/home/iansomer/public_html/wp-content/themes/iansomerhalderonline_nd/pictures/cpmfetch/cpmfetch.php";
    $objCpm = new cpm("/home/iansomer/public_html/wp-content/themes/iansomerhalderonline_nd/pictures/cpmfetch/cpmfetch_config.php");

    … mit diesen:

    PHP
    include STYLESHEETPATH . "/pictures/cpmfetch/cpmfetch.php";
    $objCpm = new cpm( STYLESHEETPATH . "/pictures/cpmfetch/cpmfetch_config.php" );

    Prüfe, ob die Daten wirklich dort liegen, wo du sie vermutest, also im Verzeichnis /pictures/cpmfetch/ deines Themes.

    Prima. War doch nicht so schwer. :)

    Wenn das die komplette functions.php deines Themes ist, dann weiß der Autor über WordPress auch nicht viel mehr als du. Naja, läuft ja auch so.

    Schreib noch diese Zeile rein:

    PHP
    wp_clear_scheduled_hook( 'wp_update_themes' );

    Denn sonst wird dir vielleicht ein Update deines Themes angeboten, und du überschreibst dann ungewollt deine Änderungen.

    Ändere noch in der Datei header.php diese Zeile:

    HTML
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

    Sie sollte so aussehen:

    PHP
    <meta http-equiv="Content-Type" content="text/html; charset=<?php bloginfo( 'charset' ); ?>" />

    Momentan behauptest du dort nämlich, dein Blog werde in ISO-8859-1 ausgeliefert. Wird es aber nicht. Du verwendest das bessere UTF-8.

    Im Moment bekommst du damit noch kein Problem, weil WordPress per HTTP die richtige Zeichenkodierung angibt und HTTP über deine falsche HTML-Angabe siegt. Speicherst aber jemand eine deiner Seiten lokal ab und sieht sie sich dann im Browser an, so sind alle Umlaute futsch.

    Der Sidebaraufruf ist PHP-Code, der gehört in PHP-Tags:

    PHP
    <div class="SR"><div class="SRL">
    <?php dynamic_sidebar( 'sidebar-1' ); ?>

    Zur functions.php: Alles außer dem Code, den ich oben gepostet habe, ist ein Plugin. Dieser Code gehört in eine separate Datei, die du dann ins Pluginverzeichnis schiebst und im Backend aktivierst.

    Zitat

    von PHP verstehe ich gleich Null


    Du solltest so etwas wirklich delegieren. PHP ist eine Programmiersprache mit weitreichenden Zugriffsrechten auf dem Server. Wenn du hier etwas falsch machst, kannst du dir sehr böse Sicherheitslücken schaffen.

    Such dir jemanden, der ein bißchen davon versteht und dir das abnimmt. Man muß nicht immer alles selbst machen.

    Warum verwendest du in der Sidebar noch den alten, kaputten Aufruf:

    PHP
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar($name_or_number) ) : endif;
    ?>

    Ich habe dir oben den korrekten Code geliefert. Benutze ihn.

    Das Plugin hat übrigens in der functions.php überhaupt nichts verloren.

    Und bitte packe Codeschnipsel hier in die entsprechenden Tags, oben rechts findest du einen Button mit der Aufschrift »PHP« dafür.

    Du bist mit den Variablen etwas durcheinander gekommen. Und das function_exists() kannst du dir auch sparen.

    So geht es:
    functions.php

    sidebar.php

    PHP
    dynamic_sidebar( 'sidebar-1' );

    Wenn du weitere Widgetbereiche anlegen willst, ergänze einfach die Funktion resul_sidebar_setup() um einen Block mit register_sidebar() und einer höheren Nummer.

    1. Lege einen Custom Post Type »Snippets« an, der nur den Editor und den Titel erlaubt und nicht öffentlich ist, also keinen zugeordneten Permalink hat.
    2. Erstelle eine Shortcodefunktion für »[snippet title='Foo']«, die sich den passenden Post aus den Snippets holt und ausgibt.
    3. Gibt es nicht, du bist schon fertig. :)