WordPress-Plugin-Entwicklung – Bilder verwenden – Pfad nicht gefunden

Lesezeit: 2 Minuten

Ich schreibe ein Plugin für WordPress und habe Probleme mit Bildern. Wenn ich mein Plugin in wp-content/plugins/my-plugin/ und dort einen Ordner images/test.png habe – wie verweise ich auf dieses Bild in meinem Code? Ich möchte die Bilder nicht in das Thema einfügen müssen, da das Bild nicht funktioniert, wenn andere Benutzer kommen, um mein Plugin zu erhalten!

So ist meine Struktur

myplugin/plugin.php (which includes several files...)
myplugin/pluginstyle.css
myplugin/includes/page.php
myplugin/images/test.png

Ich habe das Stylesheet, das gut funktioniert, aber wenn ich versuche, ein Bild als Hintergrund für ein Element zu verwenden, funktioniert es nicht.

Wie referenziere ich das Bild in meinem Plugin?

Testausgabe von page.php

<div class="test"><p>hello</p></div>

css

.test { background: url(../images/test.png) repeat-x; }

wo gehe ich falsch? Gibt es eine Methode, die ich verwenden sollte? Danke für jede Hilfe!

  • Ist das CSS extern oder in HTML eingebettet?

    – Der tote Sanitäter

    16. Juni 2010 um 13:07 Uhr

  • Siehe den Beitrag unten. Ich rufe das CSS mit dem Action-Hook wp_head auf. Es ist also extern, nicht in HTML eingebettet, denke ich?

    – Matt Facer

    16. Juni 2010 um 14:50 Uhr

Die PHP-Konstante von WordPress WP_PLUGIN_URL enthält die absolute URL zu Ihrem Plugins-Ordner. Um also die URL zu erhalten, verwenden Sie WP_PLUGIN_URL . '/myplugin/images/test.png'. Im Stylesheet sind Bildpfade immer relativ zum Stylesheet selbst. verwenden

.test { background: url(images/test.png); }

sollte funktionieren, solange es sich in einem externen Stylesheet befindet. Wenn es sich um eine Inline handelt, sollten Sie die absolute URL verwenden.

  • Nun, ich rufe das Stylesheet in meinem Plugin mit dem Hook wp_head() auf. Es gibt einfach aus … Ich möchte wirklich keinen Stil in den PHP-Dateien fest codieren (hier würde ich die WP_PLUGIN_URL-Methode verwenden … oder ist das der einzige Weg? würde images/test.png nicht aussehen, wenn es aufgerufen wird für diesen Bilderordner im Stammverzeichnis, dh: root/images oder was auch immer die Seite ist (mit Permalinks) /images ??

    – Matt Facer

    16. Juni 2010 um 14:49 Uhr

  • Nein. So wie Sie die CSS-Datei einbinden, sucht die Verwendung von url(images/test.png) im richtigen Ordner. Relative URLs innerhalb eines externen Stylesheets verweisen auf URL-Pfade relativ zu THE STYLESHEET, nicht zum angeforderten Dokument. Dies ist genau die gleiche Art und Weise, wie Designs Bilder im Stylesheet verwenden. Gleiches Konzept.

    – John P. Bloch

    16. Juni 2010 um 15:04 Uhr

  • ja – nur mit images/test.png hat funktioniert.. kann es nicht glauben !! Sicher habe ich das zuerst versucht … offensichtlich etwas falsch gemacht!

    – Matt Facer

    16. Juni 2010 um 17:26 Uhr

Eine Möglichkeit, dies zu tun, ist:

plugins_url('images/test.png', __FILE__)

… was Ihnen die korrekte URL liefert, auch wenn der Benutzer den Namen des übergeordneten Verzeichnisses geändert hat.

Ich habe Collins Antwort so verwendet:

    <img src="https://stackoverflow.com/questions/3053112/<?php echo plugins_url("images/test.png', __FILE__ ); ?>" border="0" />

1394390cookie-checkWordPress-Plugin-Entwicklung – Bilder verwenden – Pfad nicht gefunden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy