Hallo zusammen!
Auf meiner Webseite themenfreund.de habe ich Probleme mit der Ausführung von PHP in den Widgets.
Es wird eigentlich nur der in das Widget eingegebene Code angezeigt.
Woran kann das liegen?
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellenHallo zusammen!
Auf meiner Webseite themenfreund.de habe ich Probleme mit der Ausführung von PHP in den Widgets.
Es wird eigentlich nur der in das Widget eingegebene Code angezeigt.
Woran kann das liegen?
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.
PHP Code ist von Haus aus in Widgets nicht erlaubt.
Hallo Maxe!
Das weiß ich im Prinzip.
Aber auf einer Test-Installation wird folgender Code problemlos ausgeführt:
<?php tp_show_blogroll_rss_links( array('show_items' => 3,
'category' => false, 'item_order' => 'rand()',
'older_than' => 72,
'show_date' => 1,
'show_image' => 'create-thumbnails',
'thumb_size' => 70,
'show_summary' => 3,
'summary_length' => 100) ); ?>
<a href="https://themenfreund.de/blogroll-2" title="Weitere Blogroll-Einträge">Weitere Einträge</a>
Woran kann das liegen?
fehlendes Plugin
ZitatPHP Code Widget - Getestet bis: 4.7.8
Sollte man mit Vorsicht geniessen, aktuell ist WordPress 4.9.x, mit veränderten HTML/Text-Widgets seit WordPress 4.8.x
Eine bessere Lösung wäre wohl ein Shortcode, der seit WordPress 4.9.x ohne weitere Anpassungen in den Widgets ausgeführt wird.
Ich hoffe, du weißt, was du da tust. Theoretisch baust du dir damit eine nicht zu unterschätzende Sicherheitslücke ein. Das *muss* kein Problem sein. Aber du solltest genau verstanden haben, was du da "aktiviert" hast. Zu beachten dabei ist vor allem auch folgender Hinweis zum Hook aus dem Codex:
Zitat
May also apply to some third party widgets as well.
Die Shortcode-Variante von b3317133 ist in jedem Fall vorzuziehen.
Danke für den Hinweis!
Meine Freude war wohl auch etwas voreilig, denn es erscheint wieder nur die Ausgabe des Codes.
Nun zum Shortcode:
Wie arbeite ich diesen Code
<ol> <li style="list-style-type: none;">
<div class="new-article"><strong><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><!--?php if (strlen($post->post_title) > 20) {<br ?--> echo substr(the_title($before = '', $after = '', FALSE), 0, 30) . '...'; } else {
the_title();
} ?></a></strong></div>
</li>
</ol>
denn in einen Shortcode um? Das hab ich noch nicht kapiert
Man nimmt das Beispiel von der Shortcode Dokumentation und setzt den (etwas korrigierten) Code dazwischen, z.B. so:
<?php
function foobar_func( $atts ) {
ob_start();
global $post;
if ( is_a( $post, WP_Post ) ) {
$title = get_the_title();
?>
<ol>
<li style="list-style-type: none;">
<div class="new-article"><strong><a title="<?php echo esc_attr( $title ); ?>" href="<?php the_permalink(); ?>" rel="bookmark"><?php
if ( strlen( $title ) > 20 ) {
$title = substr( $title, 0, 20 ) . '...';
}
echo $title;
?></a></strong></div>
</li>
</ol>
<?php
}
return ob_get_clean();
}
add_shortcode( 'foobar', 'foobar_func' );
Alles anzeigen
Wobei zu beachten ist, dass je nach Position des Widgets und Seiten-Typ [FONT=courier new]$post[/FONT] einen anderen Bezug/Inhalt haben kann. Der Code zeigt nur das Prinzip auf...
Danke soweit schon mal.
Nun habe ich noch ein anderes Problem mit den Widgets:
Wenn ich die Seite mit dem offenen Widget per F5 aktualisiere, verschwindet der Code, und es erscheint ein ' ' (ohne die ' natürlich)
Beispiel: Aus
<?php echo top_commentators_monat(); ?> <h3 class="sidebar-title4">Top Kommentatoren der letzten 365 Tage:</h3>
<?php echo top_commentators_jahr(); ?>
wird nach dem F5
Hat das schon mal jemand gehabt?
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!