Beiträge von heinetz

    Einfach kopieren ist hochriskant!! Gerade im Uploads Verzeichnis verstecken sich viele Backdoors, siehe daher auch wichtiger Hinweis im o.g. verlinkten Vorgehen.

    Schon klar. Das hatte ich nicht extra aufgeführt. Ich würde in dem Verzeichnis vorher nach allem Auschau halten, was nicht .jpg oder .png ist.


    Das macht man üblicherweise so, "alles erkennende Tools" gibt es nicht.

    Ich habe bei keinem der Malware-Scanner, die ich ausprobiert hatte, erkannt, dass sie die DB scannen.


    Wenn Dir die Arbeit zu viel ist, die Version aus 2018 manuell alles herzustellen, solltest du vielleicht ein paar Euros in die Hand nehmen und jemand beauftragen der deine aktuell gehackte Seite bereinigt.

    Nein nein, es ist mir nicht zu viel Arbeit, alles wieder herzustellen. Es ist lediglich meine Abwägung, was sinnvoll ist und die Frage danach, was technisch möglich ist.

    So, ich habe jetzt mal angefangen und ein paar Dinge getant ...

    Mein Hoster sagt, Logfiles werden nur dann erstellt, wenn man das explizit einstellt. Das habe ich halt erst vor ein paar Tagen getan. Insofern lassen sich nicht wirklich Schlüsse daraus zieh'n. Die auf dem Server automatisch generierten Backups sin höchsten 4 Wochen alt. Da war das System schon befallen. Mir bleibt also nur, die 2018 lokal entwickelte Version neu zu installieren und die geänderten Inhalte aus der aktuellen (gehackten) Version sicher und effizient einzuspielen.

    Dazu habe ich nun zunächst die aktuelle Site per .htpasswd geschützt. Nun würde ich die Version aus 2018 in einem neuen Verzeichnis auf dem Webserver installieren. Wie kriege ich nun die geänderten Inhalte übertragen?

    1. Uploads
    Das Uploads-Verzeichnis liesse sich ja recht einfach aus der kompromittieren Version kopieren.

    2. Datenbank
    Ich denke, die neue Installation einfach mit der alten Datenbank weitermachen zu lassen ist sicher riskant. Kann ich die DB auf Virenbefall prüfen und ggf. fixen? Ich habe keine entsprechenden Tools gefunden. Die Malware-Scanner, ich ausprobiert habe, suchen nur nach verdächtigen files.

    Gut, nun habe ich auf dem Server das Logging erst gestern aktiviert. Hab's mir eben mal angesehen, würde aber nichts als verdächtig einstufen. Aber ich müsste natürlich auch wissen, wonach ich suchen soll und ob in den letzten 24 Stunden etwas verdächtiges zu finden ist, ist fraglich.

    Ich würde sagen, so finde ich die Sicherheitslücke nicht.

    Nein, auf der Seite wurde niemals irgendetwas aktualisiert. Wie gesagt wird es sicher kein grosses Problem sein, eine alte Version zu installieren und alles zu aktualisieren.

    Mit Wordfence habe ich nun auch noch mehr PHP-Files gefunden, die da nicht hingehören. Ich würde halt gerne nachvollziehen, wie konkret die dorthin gekommen sind.

    Die komplette Seite vom Netz nehmen, alle Dateien und Datenbanken löschen und eine Datensicherung einspielen von einem Zeitpunkt bei dem Du sicher bist, dass die darin enthaltenen Dateien nicht kompromitiert sind. Anschließend schauen, dass Wordpress wie auch alle Plugins nach dem Einspielen auf dem neuesten Stand sind und ggfs. prüfen, ob ein Plugin dabei ist, welches keinerlei Updates seit einiger Zeit erhalten hat.

    Die komplette Seite neu einzuspielen wird wohl nicht so aufwendig sein. Ich habe noch die lokal entwickelte Version. Lediglich einige wenige Inhalte in der DB und vielleicht ein paar Uploads sind nach der Installation hinzugekommen/verändert worden.

    WP Core und Plugins aktualisieren geht per Knopfdruck.

    Aber wie die Lücke finden? Ich wüsste nicht, wo ich Logfiles finden könnte. Meine erste Idee war, die PHP-Files anzusehen, die all-inkl als Spam identifiziert hat.

    gruss,
    heinetz

    Hallo Forum,

    ich habe vor einiger zeit mal eine WP-Site gebaut, auf der nun offenbar ein Virus (Vielleicht nennt sich das auch Malware) sein Unwesen treibt. Wie äussert sich das? Meine Kundin berichtete von Weiterleitungen auf externe Seiten sobald man auf's Menu klickt. Ich habe eben angefangen, mich mit der Problematik zu beschäftigen und habe auf dem Server bei all-inkl auch eine Virusmeldung erhalten.

    Es gibt zwei Unterverzeichnisse im plugins-Directory, die ich nie erstellt habe. Darin befinden sich zwei php-Files, die all-inkl mittlerweile umbenannt und gesperrt hat. Ich habe versucht, die Files per FTP downzuloaden, um mal reinzuschauen und weitere Hinweise zu finden. Aber das ging nicht.

    Wie und in welcher Reihenfolge gehe ich sinnvollerweise vor, um den Schaden nachhaltig zu beheben?

    danke für Tips und

    beste gruesse,
    heinetz

    danke!
    das hatte ich natürlich nach ewiger googelei (?) auch schon mehrfach gefunden. Nur eben das Zusammenspiel mit meinem Filter war mir nicht klar. Nun
    habe ich folgendes probiert:

    PHP
    /*—————————————————————————————————————————*//* Filter für bootstrap-Galery/*—————————————————————————————————————————*/
    add_filter( 'post_gallery', 'bootstrap_gallery', 10, 3 );
    function bootstrap_gallery( $output = '', $atts, $instance ) {       //print_r($atts);    add_action( 'wp_footer', 'your_function' );        wp_enqueue_style( 'blueimp', get_stylesheet_directory_uri().'/js/blueimp/css/blueimp-gallery.min.css' );    wp_enqueue_script('blueimp', get_stylesheet_directory_uri().'/js/blueimp/js/jquery.blueimp-gallery.min.js', array('jquery'));...    return $html;}
    function your_function() {    echo '<p>This is inserted at the bottom</p>';}


    ... und es funktioniert tatsächlich wie erwartet. Ist das so gedacht?


    gruss,
    heinetz

    Hallo Forum,

    um den HTML-Code, den WP beim Einfügen einer Standard-Galerie in einen Beitrag erzeugt, zu modifizieren, habe ich einen Filter programmiert:

    PHP
    /*—————————————————————————————————————————*//* Filter für bootstrap-Galery/*—————————————————————————————————————————*/
    add_filter( 'post_gallery', 'bootstrap_gallery', 10, 3 );
    function bootstrap_gallery( $output = '', $atts, $instance ) {
    
    
        wp_enqueue_style( 'gallery', get_stylesheet_directory_uri().'/css/gallery.min.css' );    wp_enqueue_script('gallery', get_stylesheet_directory_uri().'/js/gallery.min.js', array('jquery'));   ...
        return $html;}

    Der Filter gibt aber nicht nur den modifizierten HTML-Code zurück, der in den Content des Posts eingesetzt wird, sondern sorgt auch dafür, dass die dafür benötigten js und css im head geladen werden.

    Darüber hinaus wird aber ein weiterer HTML-Schnipsel benötigt, der im Footer bzw. direkt darüber eingefügt wird. Im Moment habe ich den Schnipsel direkt im Template single.php eingebaut. Das bedeutet aber, dass er unabhängig davon geladen wird, ob eine Galerie im Beitrag vorhanden ist.

    Wie schaffe ich es, dass der Schnipsel, wie auch die js und die css durch den Filter dort erzeugt wird, wo er hin soll.


    danke für Tipps und

    gruss,
    heinetz

    gelöst:

    PHP
    function stf_redirect_to_post(){     global $wp_query;     // If there is one post on archive page     if( is_archive() && $wp_query->post_count == 1 ){         // Setup post data         the_post();         // Get permalink         $post_url = get_permalink();         // Redirect to post page         wp_redirect( $post_url );     } } add_action('template_redirect', 'stf_redirect_to_post');

    Hallo Forum,

    ich versuche, folgendes zu realisieren:

    Wenn auf einer Kategorie-Seite nur ein zugehöriger Beitrag angezeigt wird, möchte ich, dass statt dessen direkt der Beitrag angezeigt wird.
    Ich habe versucht, mich da heranzutasten, indem ich im Template category.php folgenden Code eingebaut habe:

    PHP
    //echo __file__."<br>\n"; if ($wp_query->post_count<2){  wp_redirect('redirect.php');  exit;}

    Der Redirect wird so natürlich nicht ausgeführt (Warning: Cannot modify header information - headers already sent) weil schon irgendwo etwas ausgegeben wurde. Das Problem kenne ich von PHP nur zu gut und es hätte mich gewundert, wenn das auf Anhieb funktioniert hätte ;) Hier habe ich einen Ansatz gefunden, der bestimmt funktioniert. Nur stellt sich mir die Frage, ob und wie mir die benötigten Informationen an der Stelle zur Verfügung stehen. $wp_query->post_count steht mir an dieser Stelle so schonmal nicht zur Verfügung. Kann ich von hier aus a) die Anzahl der Posts herausfinden und b) den Permalink des u.U. einzigen?


    danke für Tipps und
    gruss,
    heinetz

    hello,
    erstmal danke für Deinen Tipp. Allerdings hätte ich mir schon zugetraut, im Code irgendwie an die Parent-Kategorie zu kommen. Meine Frage ist eher, ob ich die Logik in eine Funktion packen kann und natürlich kann ich auch grundsätzlich Funktionen mit PHP schreiben aber auf welche Weise und an welcher Stelle im Code so eine Funktion - im Sinne von Wordpress - sinnvollerweise definiert wird, damit ich den Code flexibel bleibt, würde ich gerne wissen.

    gruss,
    heinetz

    Hallo Forum,

    jetzt möchte ich doch noch auf dem Thema rumreiten um vielleicht etwas dazuzulernen ;)

    An welchen einzelnen Stellen in den Template die Elternkategorie benötige, hatte ich ja geschrieben. Das an den betroffenen Stellen mit PHP zu machen, ist kein Problem. Allerdings geht das sicher "sauberer". Dazu nochmal von vorn:

    In meinem template single.php habe ich folgende Codeblock gefunden, der die Kategorie ausgibt:

    HTML
    <?php if( has_category() ) :  ?>											<div class="post-categonry">												<span><?php _e('Category :', 'plutonthemes'); ?></span>												<?php the_category(' ', ''); ?>											</div>										<?php endif; ?>

    Diesen Block habe ich kopiert und will meine Kopie sinnvoll anpassen:

    HTML
    <?php if( has_my_field() ) :  ?>											<div class="post-categonry">												<span><?php _e('My Field :', 'plutonthemes'); ?></span>												<?php the_my_field(' ', ''); ?>											</div>										<?php endif; ?>

    Da habe ich mir also erstmal Funktionen ausgedacht, die es noch garnicht gibt. Die Logik, die in den Funktionen steht, ist im Grunde klar. Die Frage, die sich mir stellt, ist eher wie und wo könnte ich jetzt die Funktionen vernünftig definieren und macht das überhaupt Sinn oder erzeuge ich so vielmehr Code?


    gruss,
    heinetz

    Hallo Forum,

    ich setze gerade eine WP-Seite für meine Projekte um. Ein bisschen dazu hatte ich hier schonmal thematisiert. Allerdings ging es in dem Thread eher darum, wie grundsätzlich mit einer hierarchischen Kategorisierung zu verfahren ist, als um inhaltliche Fragen. Davon möchte ich jetzt kurz erzählen:

    Ich habe sämtliche Projekte, die ich als Webentwickler über die Jahre umgesetzt habe als Beiträge angelegt. Jedes Projekt hat damit also einen Titel, einen Zeitpunkt und eben alles, was man für einen Beitrag so definieren kann. Um den Bezug eines jeden Projekts zum Auftraggeber herzustellen habe ich sämtliche Kunden als Kategorien angelegt. So ergibt sich für das Projekt "Auftrag 1", dass ich für meinen Kunden "Auftraggeber A" umgesetzt habe, die URL http://example.com/kunden/auftragegeber_a/auftrag_1/.

    Um (auf der Seite http://example.com/kunden/auftragegeber_a/) zu "Auftraggeber A" nicht nur alle Posts der Kategorie aufzulisten, sondern auch noch etwas mehr schreiben mehr zu können, habe ich das Plugin Enhanced Category Pages im Einsatz. Läuft ;)

    Um meine Projekte als Zeitstrahl darzustellen, verwende ich das Plugin Infinite Timeline. Was nach ein paar Anpassungen auch ganz gut seinen Dienst tut.

    Warum erzähle ich das alles? Ich suche eigentlich nach einer Inspiration ;)


    Ich habe nun gerade meine Seite http://example.com/kunden/ umgesetzt. Von Haus aus, wären ja hier alle Posts aus meiner obersten Kategorie "Kunden" (also alle Projekte für alle Kunden) aufgelistet worden. Das habe ich angepasst, indem ich ein template category-kunden.php anlegt habe und dort im Moment sämtliche Kundenlogos aufliste. Da sich einige meiner Projekte allerdings dadurch auszeichnen, dass sie über Jahre andauern, möchte ich das irgendwie visualisieren.

    Bspw. habe ich für meinen Kunden "Auftraggeber A" zu Zeitpunkt "Y" das Projekt "Auftrag 1" umgesetzt. Das wird auch ersichtlich. Allerdings habe ich von Zeitpunkt "X" bis Zeitpunkt "Z" für den "Auftraggeber A" gearbeitet und die Information ist mir sehr wichtig.

    Technisch lässt sich das sicher mit Custom-Tags lösen. Ich denke aber vor Allem darüber nach, wie sich das grafisch darstellen lässt. Idealerweise natürlich mit einem Plugin, dass ich auf meine Bedürfnisse anpassen kann. Schematisch geht sowas hier in die Richtung, die ich mir vorstellen kann.

    Hat von Euch jemand eine gute Idee, vielleicht sogar ein Plugin im Kopf?


    ich freue mich über alle Tipps und

    beste gruesse,
    heinetz


    Wenn du also wirklich verschachtelte Kategorien (und dazu die stimmigen URLs) willst, arbeite wie in Versuch eins.


    Verstehe. Dann macht es Sinn so weiterzuarbeiten.


    Die Darstellung im Editor, dass es da so aussieht, als wäre die Kategorie der untersten Ebene eine Kategorie der ersten Ebene – empfinde ich auch als inkonsistent (habe mir das gerade nochmal in meinem Spielblog angesehen). Kann ich mir eigentlich nur damit erklären, dass da jemand sich was sehr schlaues dabei gedacht hat (dem aber leider fast niemand mehr folgen kann). Du hast recht: nicht so wichtig.


    genau ;)

    Darstellung der Kategorieliste im Frontend: ich vermute, dass das Standard-Kategorie-Widget von WordPress im Einsatz ist. Schau mal unter Design -> Widgets und klappe das Widget „Kategorien“ auf. Dann siehst du, dass du weitere Optionen hast, unter anderem, die Hierarchie deiner Kategorien abzubilden.


    Gefunden. Allerdings benutze ich nicht das Standard-Widget, sondern meine Kategorie wird in bspw. single.php mit folgendem Code eingefügt:

    PHP
    <?php the_category(' ', ''); ?>


    Darüber hinaus wird die Kategorie im Code eines Plugins angegeben mit:

    Code
    get_the_category()

    An wieder einer anderen Stelle habe ich ein jQuery-Skript geschrieben, dass sämtliche Posts per Ajax als JSON nachlädt. Für den JSON-Request verwende ich das Plugin REST API. Den Request beeinflusse ich in der functions.php

    Ich hatte gedacht, die Elternkategorie müsse für gewöhnlich in allen drei Fällen in dem zurückgegebenen Array stehen. Nach Deiner grundsätzlichen Klärung, dass die Elternkategorie einem Beitrag nicht zugeordnet werden soll, ist klar dass ich alle drei Stellen einzeln anfassen muss aber das dürfte ja kein Problem sein ;)


    Eine Sache fällt mir noch auf: Du schreibst, du hast im Frontend beim ersten Versuch nur die eine Kategorie (unterster Ebene) gelistet, in der der Beitrag einsortiert ist. Das könnte mit der Vorschau-Funktion zusammenhängen. Geh mal tatsächlich auf die Seite (waagrechte Admin-Bar, Link ganz links mit dem „Home“-Symbol), da müssten dir eigentlich alle existierenden Kategorien, zumindest alle, die Beiträge enthalten, gelistet sein, also zumindest die Standard-Kategorie „Allgemein“ müsste dort auch erscheinen.

    Das verstehe ich nun wieder nicht ;) Macht aber nichts, denn nachdem mir das Prinzip klar ist, dass Elternkategorien nicht explizit zugeordnet werden sollen, verhält sich jetzt alles wie erwartet und wir würden vermutlich aneinander vorbeireden, wenn wir versuchen, das zu klären.

    1000 Dank für Deine sehr gute Erklärung!

    schönen Abend und bis zum nächsten Mal,
    gruss,
    heinetz

    Sorry, ich hatte den Beitrag geschrieben, nachdem ich lange versucht hatte, das hinzubekommen. Nun versuche ich nochmal, es anders zu erklären.


    Ich habe zuerst 30 Beiträge angelegt.

    Ein Auszug:

    a) Beitrag A
    b) Beitrag B
    c) Beitrag C
    ...


    Danach habe ich in der Verwaltung 27 Kategorien zusätzlich zu der Kategorie 'Allgemein' angelegt und sie nach folgenden Muster verschachtelt.

    Ein Auszug:

    [COLOR=#333333]1) [/COLOR][COLOR=#333333]Kunden[/COLOR]
    [COLOR=#333333]2) [/COLOR][COLOR=#333333]- Agentur_2 [/COLOR]
    [COLOR=#333333]3) -- Endkunde 3[/COLOR]
    [COLOR=#333333]4) -- Endkunde 4[/COLOR]
    [COLOR=#333333]...[/COLOR]
    [COLOR=#333333](2 ist also Kind von 1, 3 und 4 sind Kinder von 2 und 1 hat keine Eltern. Die Bezeichnungen spielen im Moment noch keine Rolle)[/COLOR]
    [COLOR=#333333]Bis zu diesem Zeitpunkt sind sämtliche Beiträge (automatisch) nur der Kategorie "Allgemein" zugeordnet. Um diese Zuordnung zu ändern, rufe ich bspw. Beitrag A über "Betrag bearbeiten" im Editor auf. Dort in der Sitebar (rechte Spalte) gibt es eine 'Box' mit dem Label Kategorien (die habe ich in meinem ersten Beitrag [/COLOR]„Widget des Backends“ genannt[COLOR=#333333]). In dieser Box werden mir sämtliche Kategorien als verschachtelte Liste von Checkboxen angezeigt und nur die Checkbox für die Kategorie "Allgemein" ist gecheckt. Wenn ich nun über "Betrag ansehen" in's Frontend (keine Ahnung, ob die Bezeichnung 'Frontend' stimmt. Korrigiert mich bitte im Zweifel) wechsle (der Beitrag also mit single.php dargestellt wird), sehe ich auch dort eine Liste von Kategorien. Diese Liste besteht erwartungsgemäss aus nur einem Eintag "Allgemein". Die URL lautet http://example.dev/allgemein/betrag_a/.


    Jetzt versuche ich, meinen Beitrag A einer anderen Kategorie zuzuordnen...

    erster Versuch
    Ich wechsle also wieder in den Editor, wähle in der Box Kategorien als erstes die Checkbox "Allgemein" ab und die Checkbox "[/COLOR][COLOR=#333333]Endkunde 3[/COLOR][COLOR=#333333]" aus und speichere meine Änderungen.

    Drei Dinge fallen mir auf:

    [/COLOR]


      [*=1][COLOR=#333333](Editor) Die Darstellung der Liste in der Box 'Kategorien' hat sich geändert. Der Listenpunkt "Endkunde 3[COLOR=#333333]" [/COLOR]ist gecheckt aber er wird nicht mehr als Unterpunkt von "Agentur_2" sondern auf oberster Ebene dargestellt.

      [/COLOR]
      [*=1][COLOR=#333333](Fontend) Die Liste Kategorien besteht nun (nur) aus dem einen Eintrag [/COLOR][COLOR=#333333]"Endkunde 3[/COLOR][COLOR=#333333][COLOR=#333333]".

      [/COLOR][/COLOR]
      [*=1][COLOR=#333333](Fontend) Die Url lautet nun [/COLOR][COLOR=#333333]http://example.dev/kunden/agentur_2/endkunde_3/beitrag_a/[/COLOR]


    [COLOR=#333333]
    [/COLOR][COLOR=#333333]
    In Bezug auf mein gewünschtes Ergebnis:

    [/COLOR]


      [*=1][COLOR=#333333](Editor) Das finde ich inkonsistent aber es ist mir letztlich egal.

      [/COLOR]
      [*=1][COLOR=#333333](Fontend) Ich hätte gerne gesehen, dass neben der Kategorie [/COLOR][COLOR=#333333]"Endkunde 3[/COLOR][COLOR=#333333][COLOR=#333333]" auch deren Eltern angezeigt werden.

      [/COLOR][/COLOR]
      [*=1][COLOR=#333333](Fontend) Die Url entspricht genau dem, was ich benötige.[/COLOR]


    [COLOR=#333333]

    [/COLOR][COLOR=#333333]zweiter Versuch
    Ich wechsle also wieder in den Editor, wähle in der Box Kategorien ausser der Checkbox "[/COLOR][COLOR=#333333]Endkunde 3[/COLOR][COLOR=#333333]" auch deren Eltern "[/COLOR][COLOR=#333333]Agentur_2[/COLOR][COLOR=#333333]" und Grosseltern "[/COLOR][COLOR=#333333]Kunden[/COLOR][COLOR=#333333]" aus. Nun speichere meine Änderungen.

    Drei Dinge fallen mir auf:

    [/COLOR]


      [*=1][COLOR=#333333](Editor) In der Box 'Kategorien' werden die drei ausgewählten Kategorien nun wieder hierarchisch dargestellt.

      [/COLOR]
      [*=1][COLOR=#333333](Fontend) Die Liste Kategorien besteht nun aus allen drei gewählten Kategorien. [/COLOR][COLOR=#333333][COLOR=#333333]

      [/COLOR][/COLOR]
      [*=1][COLOR=#333333](Fontend) Die Url lautet nun [/COLOR][COLOR=#333333]http://example.dev/kunden/beitrag_a/[/COLOR]


    [COLOR=#333333]
    [/COLOR][COLOR=#333333]
    In Bezug auf mein gewünschtes Ergebnis:

    [/COLOR]


      [*=1][COLOR=#333333](Editor) Das entspricht meinen Erwartungen aber es ist mir letztlich egal.

      [/COLOR]
      [*=1][COLOR=#333333](Fontend) Nun werden zwar ausser der Kategorie auch deren Eltern und Grosseltern angezeigt aber aus der Sortierung (1. Eltern, 2. Grosseltern, 3. Kategorie) lässt sich die Hierarchie nicht ableiten.[/COLOR][COLOR=#333333][COLOR=#333333]

      [/COLOR][/COLOR]
      [*=1][COLOR=#333333](Fontend) In der Url fehlen nun die Eltern. Dass die Grosseltern angezeigt werden, hängt sicher mit meiner Einstellung unter Permalink zusammen.


      [x] Benutzerdefiniert [/COLOR][COLOR=#a9a9a9]http://example.dev[/COLOR][COLOR=#333333]/%category%/%postname%/

      Im Platzhalter %categorie% steht in dem Moment allerdings der Wert für die Grosseltern. [/COLOR]


    Fazit
    Entweder ich mache einen Fehler oder ich krieg's mit Bordmitteln nicht hin ;( Ich habe mich im Moment darauf beschränkt, alles wie im ersten Versuch zu lösen und damit auf die Darstellung der Eltern und Grosseltern im Frontend erstmal zu verzichten, weil ich die Darstellung eh programmatisch anpassen muss. Aber dazu möchte ich erstmal Klarheit haben, ob ich bis hierher irgendwas falsch mache.


    Danke und
    gruss,
    heinetz

    Hallo Forum,

    ich kämpfe hier mit verschachtelten Kategorien. Ich kann leider keine wirkliche Regelmässigkeit herausfinden, WP schient es nicht so genau zu nehmen oder ich bin zu blöd ;(

    Ich habe Kategorien nach folgendem Muster angelegt:

    Kunden
    - Agentur_A
    -- Endkunde 1
    -- Endkunde 2

    Nun möchte ich meinen Beitrag der Kategorie "Endkunde 2" zuordnen und erwarte, dass er damit automatisch auch den Eltern der Kategorie zugeordnet ist, mir das verschachtelt im Widget des Backends angezeigt wird und der Permalink entsprechend aussieht. Allerdings verhält sich das anders. Wenn ich nur "Endkunde 2" als Kategorie festlege, sieht zwar der Permalink aus, wie erwartet, aber es werden weder alle 3 Kategorien im Widget, noch im Frostend angezeigt. Wähle ich für meinen Beitrag nicht nur "Endkunde 2", sondern auch deren Eltern aus, ist die Anzeige im Backend-Widget wie erwartet, allerdings stehen erstens die Eltern nicht mehr im Permalink, zweitens werden zwar alle 3 Kategorien im Frontend angezeigt, allerdings ist die Reihenfolge Wildwuchs. In dem konkreten Fall werden die Kategorien in der Reihenfolge: Endkunde 2, Kunden, Agentur_A aufgelistet, d.h aus der Reihenfolge lässt sich weder die Hierarchie ableiten, noch ist alphabetisch.

    Kann mir das jemand erklären?


    gruss,
    heinetz

    --

    Strike! Tatsächlich wird das im Stylesheet definiert und damit funktioniert load_theme_textdomain dann auch. Offenbar steht das aber nicht immer dort. In meinem anderen Projekt steht nichts davon im Header. Aber das merke ich mir einfach für später ;)

    gruss,
    heinetz

    Hallo Forum,

    ich habe eben in meinem Parent-Theme de_DE sowohl als .mo- als auch als .po-Datei angelegt und
    sie werden geladen. Nun würde ich die Übersetzungen aber gerne korrekterweise aus meinem
    Child-Theme-Directory laden. Ich weiss von einem früheren Projekt, dass das mit der Funktion
    load_theme_textdomain möglich war und habe mir die functions.php aus dem Projekt angesehen:

    Code
    /* LOAD TRANSLATION FILES FROM CHILD-THEME	================================================== */
    	// Load translation files from your child theme instead of the parent theme
    	load_theme_textdomain( 'swiftframework', get_stylesheet_directory() . '/language' );
    	load_theme_textdomain( 'swift-framework-admin', get_stylesheet_directory() . '/language' );

    ... und den Codeblock auf Gut_Glück in die functions.php meines neuen Child-Themes eingebaut und
    die de_DE.mo und die de_DE.po aus dem Parent-Thema in's Child-Thema verschoben.

    Das funktioniert nicht und die deutschen Texte werden nicht angezeigt. Ich stelle mir zwei Fragen:

    1. Der erste Parameter "Text Domain" verstehe ich nicht.
    2. Frage: Müssen im Parent-Theme auch de_DE.mo und die de_DE.po existieren, damit sie überschrieben werden?


    danke und gruss,
    heinetz


    Möglicherweise rufst Du Funktionen die für "in der Loop" vorgesehen sind, "ausserhalb der Loop" auf.

    so ähnlich hatte ich das versucht zu interpretieren.


    Für solche Fälle gibt es in WordPress [FONT=courier new]setup_postdata()[/FONT] i.v.m. [FONT=courier new]wp_reset_postdata()[/FONT], damit baut man sich sozusagen eine kleine extra Loop, mehr dazu hier.

    Danke für den Tipp. Darin bestand (indirekt) die Lösung. In dem Code habe ich sowohl [FONT=courier new]setup_postdata()[/FONT]als auch [FONT=courier new]wp_reset_postdata() gefunden ... [/FONT]aber es funktionierte dennoch nicht, obwohl es ja hätte funktionieren müssen ;)

    Dass:

    Code
    $output = '<p>'  .the_category() .'</p>';

    ... nicht funktionieren kann, ist mir auf den zweiten Blick klar geworden als ich meine Ausgabe statt im p-Tag ganz oben auf der Seite wiederfand ;)
    Das könnte ich nun mit Output buffering lösen, ist aber keine saubere Lösung ;)

    gruss,
    heinetz