Bild aus ID erzeugen (Shortcode)
-
Hallo in die Runde.
Ich benutze dieses Plugin, um eigene Shortcodes zu benutzen:
https://wordpress.org/plugins/minimal-shortcode-ui/Genauer gesagt bin ich auf der Suche nach einer Funktion im WYSIWYG Editor einfach ein Bild auszuwählen, eine Bildunterschrift anzugeben und am Ende soll mir die Funktion einen HTML Code ausspucken, in dem die Bild- & Unterschriftvariablen enthalten sind.
Das Plugin funktioniert insgesamt auch gut, dies ist der Code der als Beispiel gegeben wird.
<?php /** * Example of a custom shortcode, include this file * to see it in action. */ if(!class_exists('\Sui\Shortcodes')) { throw new Exception(''); } use \Sui\Shortcodes as Shortcodes; use \Sui\Shortcode as Shortcode; // this will register the shortcode below into the factory $result = Shortcodes::register('ExampleShortcodeTest'); if(!$result) { throw new Exception('Failed to register this example shortcode somehow..'); } /** * This is an example shortcode. The tag name of the shortcode * may be determined by the classname. * * For more information see the source code of \Sui\Shortcode * at /lib/abstract/shortcode.php */ class ExampleShortcodeTest extends Shortcode { /** * Will be prepended to the shortcode * its tag name followed by an underscore. * * @var string */ protected $_tagNamePrefix = 'sui'; /** * The shortcode's description. * * @var string */ protected $_description = 'Shortcode description'; /** * Indicates whether this is an enclosing shortcode. * * @var boolean */ protected $_enclosed = true; /** * Defines the shortcode attributes and default values. * * @var array */ protected $_attributes = array( 'name' => '', 'image_id' => '', 'test' => false, 'choose' => '' ); /** * Class constructor * * Define the schema for your shortcode attributes here. * Or set a translated description for your shortcode here. */ public function __construct() { parent::__construct(); //$this->_description = __('translated...', ' $this->_setSchemaAttribute('name', '', 'text'); $this->_setSchemaAttribute('image_id', '', 'image'); $this->_setSchemaAttribute('test', '', 'checkbox'); $this->_setSchemaAttribute('choose', '', 'select', array( 'options' => array( '' => 'Choose...', '1' => 'Something', '2' => 'Test' ) )); } /** * Renders this shortcode. * * @param array $atts * @param string|null $content * @return string */ public function render($atts, $content = null) { $atts = shortcode_atts($this->_attributes, $atts); if(!$content) { $content = ''; } ?> <div> <h1><?php echo $atts['name'] ?></h1> <?php if($atts['image_id']): ?> <img src="<?php wp_get_attachment_image_src($atts['image_id'], 'full') ?>" alt="" /> <?php endif; ?> <p><?php echo $atts['test'] ? 'enabled' : 'disabled' ?></p> </div> <?php // if enclosement allow nested shortcodes if($this->_enclosed) { $content = do_shortcode($content); } return $content; } } ?>
Das einzige was nicht funktioniert, ist das Bild zu generieren.
<?php if($atts['image_id']): ?> <img src="<?php wp_get_attachment_image_src($atts['image_id'], 'full') ?>" alt="" /> <?php endif; ?>
..zeigt nichts an.
<?php echo $atts['image_id'] ?>
..gibt mir allerdings die Image ID aus, also genau das was es soll. Allerdings eben nicht in Kombination mit wp_get_attachment_image_src. Gibt es eine andere Möglichkeit aus einer Bild ID die URL zu generieren? Oder kann jemand erkennen, warum es nicht funktioniert.
Habe natürlich schon beim Plugin Autor nachgefragt, aber keine Antwort bekommen.
Vielen Dank!
- Das Thema „Bild aus ID erzeugen (Shortcode)“ ist für neue Antworten geschlossen.