Beiträge von codestyling

    Meist ist es ja so, dass die deutsche Sprachdatei de_DE.mo/po heißt, CL legt diese Files aber als pluginxy-de_DE.mo/po an.


    Das ist nicht richtig. Wenn der Author das Plugin korrekt geschrieben hat, dann wird die Sprachdatei auch mit dieser Kombination mittels der Funktion load_plugin_texdomain geladen, hier der WordPress Core Code Ausschnitt:


    Wie man sieht, wird die Textdomain mit dem Sprache verknüpft, der Dateiname so gebildet und auch so angeladen. Damit ist auch die Arbeitsweise von meinem Plugin korrekt.

    Den Fall, den du beschreibst, sieht mir nach einem Progammierfehler im Plugin aus. Kannst du den Plugin Download bereitstellen, damit man sich das fehlerhafte Plugin ansehen kann?

    Das bei den Links nix dabei war, halte ich für ein Gerücht. Wenn du eine Beschreibung suchst, wie man Übersetzungen von Plugins/Themes angeht, hilft dir sicher auf Code Ebene mein Vortrag vom WordCamp 2009, den ich als Download bereitgestellt habe: http://www.code-styling.de/deutsch/wordca…ls-pdf-download

    Ebenfalls ist der Link zu meinem Plugin richtig, denn damit lassen sich dann die im Code des Plugins bereitgestellten Übersetzungen einlesen, übersetzen und danach daraus eine *.mo Datei erzeugen:

    wordpress.org repository download: http://wordpress.org/extend/plugins…g-localization/
    direkt von meiner Seite: http://www.code-styling.de/deutsch/entwic…ng-localization

    Die von WordPress angebotenen get_/add_/update_/remove_ option Funktionen rufen ihrerseits entsprechende Filter auf, in die sich Plugins einklinken können und ggf. die Werte und/oder das Verhalten ändern können.
    Unter anderem können auch Caching Plugins sowas mitlesen um zu erkennen, ob jetzt statische, auf Platte gecachte Seiten hinfällig werden.
    Das erwischt man mit einem puren SQL Statement in der mySQL Oberfläche natürlich nicht.

    Prinzipiell würde ich das mit einer Multisite Installation von WP und dem Domain Mapping Plugins versuchen ( http://wordpress.org/extend/plugins…domain-mapping/ )
    Allerdings wird das vermutlich nur eine IP für alle Domains geben. Ich hab mich mit diesem Fall noch nicht befasst und kann nicht sagen, ob es durch DNS Record Anpassungen funktionieren würde.
    Ich hab aber vergleichbares schon mit anderen Systemen (nicht WP) mittels Apache Reverse Proxy und Weiterleitung auf einen (mehrere) dedizierte Server gemacht (braucht einen Root Server). Und die Seiteninhalte müssen per reverse Proxy umschreibbar sein, damit man generierter URI's umschreiben kann in die URI's der entsprechenden Proxies.

    Das Problem scheint mit dem Plugin "Transposh Translation Filter" zusammenzuhängen. Wenn man deine Seite auf beispielsweise africaans umstellt, wird der deutsch geschriebene Oktoberbenutzt aber diesmal ausgeschrieben zund nicht die Kurzform. Ich denke, dass sich da dieses Plugin eingeklinkt hat und die Ausgaben gemäß der gewählten Sprache manipuliert.

    Korrektes SQL:

    SQL
    UPDATE wp_options
    SET option_value = 'closed'
    WHERE option_name = 'default_comment_status' AND option_value='open';


    Du musst schon die korrekten Spaltennamen der entsprechenden Tabelle benutzen und mit ihren Inhalten ausfilteren.

    Die sicherere Variante ist allerdings, wie schon genannt, über die update_option Funktion des jeweiligen Blogs zu gehen, um Nebeneffekte zu vermeiden.

    Direkt aus der wp-includes\locale.php (WordPress core Datei):

    Da in der Webseite bereits die korrekte Übersetzung aus der Sprachdatei steht:

    Code
    Okt_Oktober_abbreviation
       statt
    Oct_October_abbreviation

    ist es völlig schleierhaft, warum die Schleife mit der preg_replace Ersetzung, die für alle anderen Monate offensichtlich korrekt arbeitet, bei Oktober ein Problem hat.

    Ich hab mir das Theme runtergeladen und in meinen Testblog aktiviert, dort ist auch der Oktober korrekt. Kann das Fehlverhalten nicht nachstellen und find auch formal im WordPress Code keinen Fehler.

    Derzeit hab ich keine Idee, warum das in diesem Blog nicht funktioniert. Vielleicht vergreift sich eines der installierten Plugins nachträglich an Datumsfunktionen per Filter. Das ließe sich nur durch Deaktivieren von Plugins testen.

    Der PHP code in deiner Header Datei des Themes wird nicht ausgeführt sondern ausgegeben. Evtl. hast du dort Code editiert oder irgendwoher ausgeschnitten und eingeklebt:

    Code
    <div id="header">
     <div id="headerimg" onclick="location.href='[COLOR=Red]&lt;?php bloginfo('url'); ?&gt;[/COLOR]';"
    onkeypress="location.href='[COLOR=Red]&lt;?php bloginfo('url'); ?&gt;[/COLOR]';" style="cursor: pointer;">
      <h1><a href="[COLOR=Red][URL="http://forum.wordpress-deutschland.org/view-source:http://www.musicfilter.info/blog/%3C?php%20echo%20get_settings%28%27home%27%29;%20?%3E"]&lt;?php echo get_settings('home'); ?&gt;[/URL][/COLOR]" title="[COLOR=Red]&lt;?php bloginfo('name'); ?&gt;[/COLOR]">
    [COLOR=Red]&lt;?php bloginfo('name'); ?&gt;[/COLOR]</a></h1>
      <div class="description">[COLOR=Red]&lt;?php bloginfo('description'); ?&gt;[/COLOR]</div>
     </div>
    </div>


    Das sollte mindestens so aussehen (nicht ausschneiden sonder abtippen):

    PHP
    <div id="header">
     <div id="headerimg" onclick="location.href='<?php bloginfo('url'); ?>'"
    onkeypress="location.href='<?php bloginfo('url'); ?>'" style="cursor: pointer;">
      <h1><a href="<[URL="http://forum.wordpress-deutschland.org/view-source:http://www.musicfilter.info/blog/%3C?php%20echo%20get_settings%28%27home%27%29;%20?%3E"]?php echo get_settings('home'); ?>[/URL]" title="<?php bloginfo('name'); ?>">
    <?php bloginfo('name'); ?></a></h1>
      <div class="description"><?php bloginfo('description'); ?></div>
     </div>
    </div>

    Das Phänomen kenn ich nur, wenn der Login abgelaufen ist aber der Admin Editorbereich noch offen ist. Du müsstest bei jedem Versuch, einen anderen Menüpunkt aufrufen zu wollen, auf dem Loginscreen landen.
    Und Opera macht solche Sachen aufgrund seines Seitencaches. Wenn man Opera schliesst während man in Editor ist und morgen aufmacht, sieht es erstmal so aus, als ob man weitermachen könnte. Jedoch geht gar nix, weil man ausgeloggt ist. Merkt man erst mit einem reload oder anderen Menüpunkt.
    Sonst ist mir dieses Phänomen nicht geläufig.

    Da stimmt was nicht im Excerpt (rot markiert, weiter rechts). Wird der generiert oder händisch eingegeben?

    Code
    <div id="excerpttext"> DIE KREATIVEN LOTSEN VOM HAFENBECKEN h1 ist eine von Marc Hillen inhabergeführte Kommunikations-Agentur in Neuss, die Kunden am gesamten Niederrhein betreut. „Wir sind kompetente Lotsen in den Bereichen Werbung, Corporate Identity und Öffentlichkeitsarbeit. Unsere Kunden genießen umfassende Betreuung von der...<a href="[URL="http://forum.wordpress-deutschland.org/view-source:http://trendguide.de/marken-produkte/h1/"]http://trendguide.de/marken-produkte/h1/[/URL]" rel="bookmark" title="weiterlesen"> weiterlesen</a> [COLOR=Red][B]</p> <p>&nbsp;</p>[/B][/COLOR]</div>

    Das kann IE nicht korrigieren und das excerpttext div floated auch nicht mit, ist also ein Block unterhalb des Links.

    Beispiel, umgebrochen für Lesbarkeit:

    PHP
    <[COLOR=Red][B]a[/B][/COLOR] href="<?php the_permalink() ?>" 
     rel="bookmark" title="<?php  the_title_attribute(); ?>"
    > 
       <[B][COLOR=Blue]div[/COLOR][/B] id="thumb"> 
         <?php the_post_thumbnail(array(150,75), array('class' => 'alignleft'));  ?>  
       <[B][COLOR=Blue]/div[/COLOR][/B]> 
    <[COLOR=Red][B]/a[/B][/COLOR]>


    Das ist kein valides Markup, denn ein div kann nicht innerhalb eines Ankers (Link) sein. Wirf das div da raus.

    Pack einmal Deine Stylesheets in den Header, wo sie hin gehören...


    Daran liegt es leider nicht, denn der Quelltext ist soweit ok. Allerdings sagt der W3C Validator, dass die Seite mit einem BOM Marker ausgeliefert wird.
    Ich denke mal, dass mindestens die header.php des Themes mit einem Texteditor bearbeitet wurde, der einen BOM Marker geschrieben hat.
    Alle veränderten PHP Dateien sollten nochmal mit einem Texteditor geöffnet werden und als UTF-8 ohne BOM gespeichert werden.
    Die Browser verschlucken sich momentan an Seiten, die mit BOM's daherkommen und machen wilde Sachen damit.

    Was bitteschön soll denn das hier sein?

    PHP
    <div class="markenpost" [COLOR=Red]<h2 id="post-<?php the_ID(); ?>[/COLOR]">

    Würde mal sagen, wenn das so im Quelltext der PHP Datei steht, dass du dann ein kaputtes Markup hast und jeder Browser anders zu reparieren versucht.
    Bring das mal in Ordnung, dann sollte auch alles funktionieren.

    Wenn ich ein englischsprachiges Theme habe, welches nur durch eine entsprechende Sprachdatei Deutsch mit mir spricht, dann sollte es doch genügen, die Sprachdatei des Themes zu löschen, oder irre ich mich da?!


    Und was ist mit Plugins, die ebenfalls Texte durch Widgets, Content Erweiterungen etc. in die Frontend Ausgabe rauswerfen? Diese würden dann immer noch in deutsch rauskommen, selbst wenn das Theme das nicht mehr macht. Nur wenn man von allen Plugins alle deutschen Sprachdateien löscht, wäre man sicher. Allerdings auch nur bis zum nächsten Update eines Plugins.

    Deswegen die von mir skizzierte Vorgehensweise, weil 1. die Updates kein Problem darstellen und 2. ich alles damit erreicht habe, was Content produzieren kann, der übersetzbare Texte enthält.

    Prinzipiell ist das da genauso sicher wie die DB-Daten in der wp-config.php.


    Das halte ich für grob fahrlässig, denn die config Datei kann ich mit Boardmitteln von WP nicht ansehen oder editieren, Theme Dateien aber schon, denn der eingebaute Theme Editor erlaubt u.U. (je nach Rolle oder Nutzerrecht) zumindest das Öffnen der Theme Template Dateien.
    Somit könnte man an die Daten mit Boardmitteln rankommen. Die Schwelle dazu ist schon sehr hoch aber nicht unmöglich. Deswegen würde ich ein include einer eigenen PHP Datei in der Templatedatei vorziehen, die mindestens im WordPress Rootverzeichnis liegt (oder wie angedeutet ausserhalb).