2016-10-17 3 views
0

У меня есть Child-Theme Wordpress Двадцать четырнадцать, и я хочу, чтобы отмеченные сообщения, отображаемые в сетке над основным блогом, не исчезали в блоге. поэтому он должен появиться в сетке AND в блочном цикле.Как включить Избранные сообщения в цикле в Wordpress Двадцать четырнадцать

Я уже искал файлы темы, но у меня не получилось понять, где отмеченные сообщения фильтруются.

Я также пытался избавиться от излишней сложности и создал новый index.php для ребенка-темы:

<?php 
     if (have_posts()) : 
      // Start the Loop. 
      while (have_posts()) : the_post(); 

       the_title('<h1 class="entry-title">', '</h1>'); 

      endwhile; 

     else : 
      // If no content, include the "No posts found" template. 
      get_template_part('content', 'none'); 

     endif; 
    ?> 

но даже там признаки сообщений отсутствуют. (Он показывает только основной цикл).

Любая идея, где делать трюк?

Заранее благодарен!

Update 24,10 .: После того как я не мог решить мою проблему с последними двумя ответов, я также исследовал оригинал двадцать четырнадцать темы и нашел файл вкл/признаки-content.php, в котором цветной контент фильтруется.

Функция pre_get_posts in ll. 231 и далее. отвечает за эту проблему - специально, но без подсказки, как не фильтр.

Я полагаю, что вкл/признакам-content.php содержит класс, я мог бы расширить и перезаписать pre_get_posts-метод?

Но на самом деле, я не php-гуру, и я не вижу, где исходный класс инициализирован ...? Есть идеи?

Последующее обновление: В functions.php, ll. 514 ff., Класс, о котором идет речь, не требуется:

/* 
* Add Featured Content functionality. 
* 
* To overwrite in a plugin, define your own Featured_Content class on or 
* before the 'setup_theme' hook. 
*/ 
if (! class_exists('Featured_Content') && 'plugins.php' !== $GLOBALS['pagenow']) { 
    require get_template_directory() . '/inc/featured-content.php'; 
} 

Это похоже на проблему, чтобы просто переопределить его? Было бы хорошо, чтобы не потерять функциональность всего класса, но только, чтобы изменить его ...

ответ

0

Наконец, я нашел рабочий раствор (на самом деле, прежде чем я попробовал, но использовал неправильный крючок ...: - /):

В моем ребенке functions.php я добавил эти строки, чтобы удалить функцию фильтрации из Featured_Content класса в inc/featured-content.php

function do_not_filter_featured_posts() { 
remove_action('pre_get_posts', array('Featured_Content', 'pre_get_posts')); 
} 
add_action('wp_loaded', 'do_not_filter_featured_posts'); 

Это добавляет функцию do_not_filter_featured_posts называться после загрузки WordPress, который удаляет функция pre_get_posts добавлена ​​в класс родительской темы Featured_Content на крючке pre_get_posts.

Voilà!

0

Попробуйте этот способ ..

<?php 

    $fp_arg = array(
        'posts_per_page' => 3, 
        'post_type' => 'post', 
        'meta_key' => 'featured_product', // the name of the custom field 
        'meta_compare' => '=', // the comparison (e.g. equals, does not equal, etc...) 
        'meta_value' => 1, // the value to which the custom field is compared. In my case, 'featured_product' was a true/false checkbox. If you had a custom field called 'color' and wanted to show only those blue items, then the meta_value would be 'blue' 
        ); 

    $future_post = new wp_query($fp_arg); 

?> 

<?php if ($future_post->have_posts()){ 
     while ($future_post->have_posts()) : $future_post->the_post(); 
       the_title('<h1 class="entry-title">', '</h1>'); 
       if (has_post_thumbnail()) { 
        the_post_thumbnail(); 
       } 

     endwhile; 
} 
?> 

<?php wp_reset_query(); ?> 
+0

благодарит за вашу помощь - но я еще не смог решить проблему. Может быть, у вас есть идеи по моему обновленному вопросу? – poseidon

0

/* posts_per_page»=> -1 все посты get_the_post_thumbnail получить изображение на ваш почтовый идентификатор */

$posts = get_posts(array('posts_per_page' => -1)); 
    foreach ($posts as $_post) { 
     if (has_post_thumbnail($_post->ID)) { 
      echo '<a href="' . get_permalink($_post->ID) . '" title="' . esc_attr($_post->post_title) . '">'; 
      echo get_the_post_thumbnail($_post->ID, 'thumbnail'); 
      echo '</a>'; 
     } 
    } 
+0

Спасибо за помощь, но пока не удалось решить проблему. Может быть, у вас есть идеи по моему обновленному вопросу? – poseidon

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