2016-09-11 1 views
0

Ich bin mir sicher, dass ich hier etwas Grundlegendes falsch mache. Es wird versucht, einen Zitatblock nach dem zweiten Absatz eines WordPress-Posts einzufügen, wenn sich Inhalt in dem Feld befindet. Wenn nicht, möchte ich den Inhalt ohne den Block hinzufügen. Der Code funktioniert außerhalb der if else-Anweisung, aber nicht, wenn er darin enthalten ist. Ich habe das Advanced Custom Fields-Plugin verwendet, um das Feld zu erstellen. Kann jemand helfen? Hier ist mein Code:php wenn else Anweisung - Testen für leeres Feld

<?php 
$show_after_p = 2; 
$content = apply_filters('the_content', $post->post_content); 
$contentblock = the_field(post_quote_block); 
if (!empty($contentblock)) { 
if(substr_count($content, '<p>') > $show_after_p) 
{ 
    $contents = explode("</p>", $content); 
    $p_count = 1; 
    foreach($contents as $content) 
    { 
     echo $content; 
     if($p_count == $show_after_p) 
     { 
     ?> 
       <div class="blogQuoteBlock"><div class="blogQuoteBlockText"><?php the_field(post_quote_block) ?></div></div> 
     <?php 
     } 
     echo "</p>"; 
     $p_count++; 
    } 
} 
} 
else { 
    <?php the_content(); ?> 
} 
?> 

Antwort

1

Dies ist wahrscheinlich Ihr Problem:

$contentblock = the_field(post_quote_block); 

Es sei denn, Sie definiert haben, eine Konstante post_quote_block Sie wollen wahrscheinlich:

$contentblock = the_field('post_quote_block'); 

Beachten Sie, dass Sie das gleiche Problem haben später auf, wo Sie den HTML ausgeben.

+0

Hallo Jeroen. Vielen Dank für Ihre Antwort. Leider funktioniert das nicht (obwohl es durchaus möglich ist, dass ich hier etwas anderes vermisse). Wenn ich jedem 'post_quote block' Anführungszeichen hinzufüge, erhalte ich nur eine leere Seite, wenn ich einen meiner Posts besuche. –

0

Ersetzen Sie Ihre 2 Codezeile durch folgenden Code, um zu prüfen, ob der Wert gesetzt ist oder nicht.

$contentblock = the_field('post_quote_block'); 
if (isset($contentblock) && !empty($contentblock)) {