2016-03-02 6 views
0

Hellow every! Я показываю блог сообщений в дополнительном шаблоне wp, и все работает отлично, но я сделал из него какую-то галерею, и мне не нужно ничего показывать, кроме галереи и названия.Исключить выдержку из wordpress wp_query

Внутри сообщений у меня есть это:

[gallery ids="1618,...,1634"] 
<h2>...</h2> 
<p>...</p> 
text without format, etc. 

Как вы можете видеть, я использую галерею шорткод. Мне нужно, чтобы это было показано, но все остальное содержимое должно быть исключено из цикла.

Благодарим Вас за помощь в этом вопросе ...

Мой код шаблона:

<?php 
/* 
* Template name: Блог 
*/ 
$current_page = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array(
    'posts_per_page' => 9, 
    'paged'   => $current_page, 
    'cat'   => 8 
); 
query_posts($args); 

$wp_query->is_archive = true; 
$wp_query->is_home = false; 

while(have_posts()): the_post(); 
    ?> 
    <div class="foto_posts"> 
     <?php the_content() ?> 
     <?php echo '<a href="' . get_permalink() . '" class="foto_title" target="_blank">' . get_the_title() . '</a>';?> 
     </div> 
    <?php 
endwhile; 

if(function_exists('page_navi_slider')) page_navi_slider(); 
+1

Вы пытались удалить ""? – cesare

+0

Несомненно. Галерея перестает отображаться, потому что она находится в содержимом ... – Sepika

ответ

0

пытаются заменить <?php the_content() ?> на <?php the_title() ?>

+0

Тогда я просто получаю название, кроме галереи. Я думаю, мне нужны сложные правила, которые собираются получить только изображения, галереи и видео (да, в некоторых сообщениях я тоже получил видео), и исключить все остальное ... – Sepika

0

если вы просто хотите, чтобы показать галерею шорткод попробовать этот

заменить

<?php the_content() ?> 

в

$pattern = get_shortcode_regex(); 
preg_match('/'.$pattern.'/s', $post->post_content, $matches); 
if (is_array($matches) && $matches[2] == 'gallery') { 
    $shortcode = $matches[0]; 
    echo do_shortcode($shortcode); 
} 
+0

Это не сработало к сожалению ... Кроме того, сообщения о видео в iframe – Sepika

+0

Возможно, этот простой подход может помочь. move/copy '[gallery]' shortcode to post excerpt than replace '' To '' –

0

Попробуйте для получения галереи и видео использовать get_post_meta_key()

<?php get_post_meta($post_id,'key_name',1);?> 

Если она возвращает массив затем траверс этого массива, чтобы получить ссылку изображений и ссылки на видео

add_shortcode('gallery', 'gallery_shortcode_fancybox'); 
function gallery_shortcode_fancybox($attr) { 

    $attachment_ids = explode(',',$attr['ids']); 

    $args = array(
     'post__in' => $attachment_ids, 
     //'cat'   => 8 if category needs to be shown pass it in shortcode , same as ids 
    ); 
    $gallery_posts = query_posts($args); 
    foreach ($gallery_posts as $key => $value) { 
     //do the stuff here 
     echo '<h2>'. $value->post_title;'</h2>'; 
     $feat_image = wp_get_attachment_url(get_post_thumbnail_id($value->ID); 
     echo '<p><img src="'.$feat_image.'" ></p>'; 
    } 
} 
+0

Если я не ошибаюсь, gallery_shortcode_fancybox - это плагин Fancybox , Если это так, я не использую этот. У меня установлен Cherry Framework, а «галерея» - это плагин. – Sepika

+0

gallery_shortcode_fancybox - это имя функции обратного вызова, которую вы можете изменить на другое. –

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