2015-05-11 3 views
0

У моего index.php сайта Wordpress есть div, который публикует заголовок, категорию и изображение изображений.таргетинг и размещение блоков цитаты из сообщений

index.php HTML

<div> 
    <h1><?php the_title(); ?></h1> 
    <h3><?php the_category(' '); ?></h3> 
</div> 

У меня есть single.php, который приносит в и помещает содержимое поста

single.php HTML

<div> 
    <?php the_content(); ?> 
</div> 

Я хочу, чтобы принести раздел of_content сообщения в мой index.php (например, что-либо в теге «цитата блока»)

EX.

<div> 
    <h1><?php the_title(); ?></h1> 

    ... content from block quote  

    <h3><?php the_category(' '); ?></h3> 
</div> 
+0

I немного отформатировал ваш код. Блоки кода должны иметь отступы для 4-х пространств для правильного отображения. – AJFarmar

ответ

0

Вы можете извлечь содержимое с get_the_content(), а затем проверить, есть ли BLOCKQUOTE и, если да, то эхо его:

// get the content 
$content = get_the_content(); 
// check and retrieve blockquote 
if(preg_match('~<blockquote>([\s\S]+?)</blockquote>~', $content, $matches)) 
    // output blockquote 
    echo $matches[1]; 
+0

, так что я могу положить это как написано в моем теге html div? – user3550879

+0

Да, в вашем файле шаблона между тегами 'H1' и' H3', очевидно, внутри '' block – d79

+0

ваш код, казалось, работал отлично и кажется простым в использовании. Второй вопрос, хотя, что мне нужно изменить, чтобы удалить раздел «цитата блока» из the_content? Я не хочу, чтобы он показывался на single.php, если я показываю его на index.php – user3550879

0

Вы можете анализировать данные из HTML-тегов с помощью модуля DOM. This - отличное руководство для этого.

Вы можете также использовать REGEX (Кто-то показал, что это уже так что я удалил ссылку я собирался показать)

Другой вариант является разобрать его самостоятельно с взрываются и т.д. Как так:

//Get the content 
$content = the_content(); 

//Explode to separate the first tags 
$blockquotes = explode("<blockquote>", $content); 

//Data array to use 
$data = array(); 

//For each of these 
foreach($blockquotes as $x){ 
    //Find the location of </blockquote> 
    $end_loc = strpos($x, "</blockquote>"); 

    //Remove everything after by only taking everything before it 
    $temp = substr($x, 0, $end_loc); 

    //Add it to the array 
    $data[] = $temp; 
} 

//Data now contains all of the data, do as you please with it 
var_dump($data); 
+0

Могу ли я поместить это в свои functions.php. или это должно идти в html (если так точно где?) – user3550879

Смежные вопросы