Artikelbild mittels custom fields - Syntaxfrage php

  • Hallo liebe Community,

    ich möchte folgendes realisieren:
    Ich habe ein customfield namens "himg" angelegt, in dem ein Wert für den Artikel abgelegt werden kann. Und dieser Wert soll ein Schnipsel eines Bilderpfades sein. Es soll also abhängig von diesem Feld ein einführendes Bild dargestellt werden.
    Ich dachte mir dies so:

    PHP
    <img class="alignleft" title="Titelbild" src="../wp-content/uploads/<?php if ( get_post_meta($post->ID, 'himg', true) ) : ?> 
            <?php echo get_post_meta($post->ID, 'himg', true) ?><?php else :  ?>alternative<?php endif; ?>.jpg" alt="" width="320" height="200" />

    Die Pfadangabe wird nun richtig generiert, aber vor ".jpg", also im Dateinamen des Bildes, werden mir ein paar leerzeichen eingefügt und somit das Bild nicht angezeigt.

    so also: bild_____.jpg

    Woran kann das liegen? Habe ich da nen wahnsinns Syntaxfehler? Ich komm nicht drauf..

    Vielen Dank für Eure Hilfe.
    FragenLurch

    In der Hektik verliert sich die Logik. - Fred Ammon

    Einmal editiert, zuletzt von fragenlurch (4. November 2011 um 23:30)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Soso mit trim? Na das werd ich nachher mal probieren. Mit dem Alternativbild klappt es ohne Leerzeichen...
    Mich würde ja auch der Grund interessieren, warum diese Ausgabe so schräg generiert wird.

    Also nochmals danke und ich werd mich später melden..

    In der Hektik verliert sich die Logik. - Fred Ammon

  • habs jetzt doch mal schnell probiert. ich habe

    PHP
    <?php echo get_post_meta($post->ID, 'himg', true) ?>

    ersetzt durch

    PHP
    <?php echo trim(get_post_meta($post->ID, 'himg', true)); ?>

    Es gab keine Änderung: Das Bild bekommt immernoch Unterstriche verpasst. Das Alternativbild wird immer noch richtig angezeigt..:confused:

    In der Hektik verliert sich die Logik. - Fred Ammon

  • edit:
    der effekt kommt vom zeilenumbruch und den leerzeichen in deinem code;
    versuch alles in eine zeile ohne leerzeichen zu packen:

    PHP
    <img class="alignleft" title="Titelbild" src="../wp-content/uploads/<?php if ( get_post_meta($post->ID, 'himg', true) ) : echo get_post_meta($post->ID, 'himg', true) ?><?php else :  ?>alternative<?php endif; ?>.jpg" alt="" width="320" height="200" />
  • Das wars! Danke! :-)
    Nachdem ich jetzt den Zeilenumbrauch und die Leerzeichen aus dem Code genommen hab, klappt es. Selbst ohne die TRIM-Anweisung. Aber mit auch!

    Merkwürdig, und ich dachte immer, leerzeichen interessieren php nicht! und die waren ja auch nicht im customfield - dann hätte ich es ja noch verstanden.

    Na ich bin jedenfalls glücklich. Ich dachte schon, ich müsse extra deswegen mit Postformaten rumobern!

    In der Hektik verliert sich die Logik. - Fred Ammon

  • Zitat

    leerzeichen interessieren php nicht!

    innerhalb vom php tag stimmt das - aber dein zeilenumbruch und die leerzeichen waren im html bereich - nach dem abschluss des einen php tags [FONT=Courier New][COLOR=blue]?> [FONT=Verdana][COLOR=black]und vor dem start des anderen php tags[/COLOR][/FONT] <?php[/COLOR][/FONT]

    (ich hatte auch zweimal hinsehen muessen, um das zu begreifen, daher mein erster vorschlag mit dem trim)

  • Ja stimmt! Die Leerzeichen waren sozusagen im HTML. Naja, wieder was gelernt und geschafft..

    Vielen Dank nochmals und mal wieder!

    nice we

    In der Hektik verliert sich die Logik. - Fred Ammon

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!