unwohltaeter
Mitglied
Keine Ahnung ob das jetzt eher hierher gehört oder in ein anderes Forum.
Ich habe zwei Funktionen (Wordpress-Shortcodes) die sich scheinbar irgendwie/-wo ins Gehege kommen, kann aber den Fehler nicht finden.
Die erste Funktion:
Die zweite Funktion:
Wenn ich jetzt die erste auskommentiere, funktioniert die zweite Funktion.
Ein anderes Problem: Funktion 1 gibt mir das Ganze über dem Wordpress-Content aus, anstatt innerhalb. Sollte ich nun bei Funktion 1 "return" verwenden, gibt mir die Funktion nur einen Link aus, anstatt wie gewünscht fünf. Der Permalink und der Titel werden außerdem als Text und nebeneinander ausgegeben.
Ich habe zwei Funktionen (Wordpress-Shortcodes) die sich scheinbar irgendwie/-wo ins Gehege kommen, kann aber den Fehler nicht finden.
Die erste Funktion:
PHP:
function fuenf_rezepte() { ?>
<ul>
<?php global $post;
$arguments = array( 'numberposts' => 5, 'orderby' => 'rand', 'meta_key' => 'Produkt', 'meta_value' => $post->post_title );
$my_query = get_posts($arguments);
$link = get_permalink();
foreach($my_query as $post) :
setup_postdata($post); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>
<?php }
add_shortcode('fuenfrezepte', 'fuenf_rezepte');
Die zweite Funktion:
PHP:
function produktinformation() {
global $post;
$brennwert1 = get_post_meta($post->ID, 'Brennwert (pro 100g)', true);
$brennwert2 = get_post_meta($post->ID, 'Brennwert (pro Portion)', true);
$eiweiß1 = get_post_meta($post->ID, 'Eiweiß (pro 100g)', true);
$eiweiß2 = get_post_meta($post->ID, 'Eiweiß (pro Portion)', true);
$kohlenhydrate1 = get_post_meta($post->ID, 'Kohlenhydrate (pro 100g)', true);
$kohlenhydrate2 = get_post_meta($post->ID, 'Kohlenhydrate (pro Portion)', true);
$zucker1 = get_post_meta($post->ID, 'Zucker (pro 100g)', true);
$zucker2 = get_post_meta($post->ID, 'Zucker (pro Portion)', true);
$fett1 = get_post_meta($post->ID, 'Fett (pro 100g)', true);
$fett2 = get_post_meta($post->ID, 'Fett (pro Portion)', true);
$fettsaeuren1 = get_post_meta($post->ID, 'gesätt. Fettsäuren (pro 100g)', true);
$fettsaeuren2 = get_post_meta($post->ID, 'gesätt. Fettsäuren (pro Portion)', true);
$ballaststoffe1 = get_post_meta($post->ID, 'Ballaststoffe (pro 100g)', true);
$ballaststoffe2 = get_post_meta($post->ID, 'Ballaststoffe (pro Portion)', true);
$natrium1 = get_post_meta($post->ID, 'Natrium (pro 100g)', true);
$natrium2 = get_post_meta($post->ID, 'Natrium (pro Portion)', true);
return '
<div class="produktinfo_ungerade produktinfo_kopf">bei Zubereitung lt. Anleitung</div>
<div class="produktinfo_ungerade produktinfo_ueberschrifteins">Nährwerte</div>
<div class="produktinfo_ungerade produktinfo_ueberschriftzwei">pro 100g</div>
<div class="produktinfo_ungerade produktinfo_ueberschriftdrei">pro Portion</div>
<div class="produktinfo_spalteeins_hoch">Brennwert</div>
<div class="produktinfo_spaltezwei_hoch">' . $brennwert1 .'</div>
<div class="produktinfo_spaltedrei_hoch">' . $brennwert2 . '</div>
<div class="produktinfo_ungerade produktinfo_spalteeins">Eiweiß</div>
<div class="produktinfo_ungerade produktinfo_spaltezwei">' . $eiweiß1 . '</div>
<div class="produktinfo_ungerade produktinfo_spaltedrei">' . $eiweiß2 . '</div>
<div class="produktinfo_spalteeins">Kohlenhydrate</div>
<div class="produktinfo_spaltezwei">' . $kohlenhydrate1 . '</div>
<div class="produktinfo_spaltedrei">' . $kohlenhydrate2 . '</div>
<div class="produktinfo_ungerade produktinfo_spalteeins">- Zucker</div>
<div class="produktinfo_ungerade produktinfo_spaltezwei">' . $zucker1 . '</div>
<div class="produktinfo_ungerade produktinfo_spaltedrei">' . $zucker2 . '</div>
<div class="produktinfo_spalteeins">Fett</div>
<div class="produktinfo_spaltezwei">' . $fett1 . '</div>
<div class="produktinfo_spaltedrei">' . $fett2 . '</div>
<div class="produktinfo_ungerade produktinfo_spalteeins_hoch">gesätt. Fettsäuren</div>
<div class="produktinfo_ungerade produktinfo_spaltezwei_hoch">' . $fettsaeuren1 . '</div>
<div class="produktinfo_ungerade produktinfo_spaltedrei_hoch">' . $fettsaeuren2 . '</div>
<div class="produktinfo_spalteeins">Ballaststoffe</div>
<div class="produktinfo_spaltezwei">' . $ballaststoffe1 . '</div>
<div class="produktinfo_spaltedrei">' . $ballaststoffe2 . '</div>
<div class="produktinfo_ungerade produktinfo_rundeins">Natrium</div>
<div class="produktinfo_ungerade produktinfo_spaltezwei">' . $natrium1 . '</div>
<div class="produktinfo_ungerade produktinfo_rundzwei">' . $natrium2 . '</div>';
}
add_shortcode('produktinfo', 'produktinformation');
Wenn ich jetzt die erste auskommentiere, funktioniert die zweite Funktion.
Ein anderes Problem: Funktion 1 gibt mir das Ganze über dem Wordpress-Content aus, anstatt innerhalb. Sollte ich nun bei Funktion 1 "return" verwenden, gibt mir die Funktion nur einen Link aus, anstatt wie gewünscht fünf. Der Permalink und der Titel werden außerdem als Text und nebeneinander ausgegeben.
PHP:
function fuenf_rezepte() { ?>
<ul>
<?php global $post;
$arguments = array( 'numberposts' => 5, 'orderby' => 'rand', 'meta_key' => 'Produkt', 'meta_value' => $post->post_title );
$my_query = get_posts($arguments);
$link = get_permalink();
foreach($my_query as $post) :
setup_postdata($post);
return '<li><a href="' . the_permalink() . '">' . the_title() . '</a></li>';
endforeach; ?>
</ul>
<?php }
add_shortcode('fuenfrezepte', 'fuenf_rezepte');
Zuletzt bearbeitet: