Intereting Posts
Пусть редакторы просматривают сообщение в admin, но не могут выполнять сохранение / редактирование Редактор WP: держите полужирный, подчеркивающий и т. Д., Но игнорируйте цвет Как предотвратить выполнение запроса по умолчанию, сохраняя при этом возможность использовать WP_Query в шаблоне? Несколько веб-сайтов, которые используют некоторые типы контента, а не другие. как установить событие расписания для изменения метаданных всех сообщений еженедельно или ежемесячно? Как я могу извлечь данные Почтовый фильтр Месяц выпадающего списка в интерфейсе, например, wordpress backend Получить идентификатор сообщения из идентификатора вложения (перенаправление на страницу продукта) Как связать более одного пользователя с сообщением? Пользовательский файл styles.css для визуального редактора get_terms (или tax_query) на текущий пост? Запрос / список всех условий и их счетчик сообщений WP_Query orderby не работает с meta_value_num и menu_order Изменение идентификатора администратора для базы данных Можно ли добавить значок и функцию на панель инструментов «Загрузить / Вставить» в верхней части редактора содержимого?

Связанные должности: изменение функции для сообщений на странице

Я работаю над dailysuit.de, который содержит 8 статей, связанных с содержанием, в каждом сообщении, определяемом некоторыми тегами.

Теперь я хотел уменьшить количество «сообщений на страницу» с 8 до 4. Конечно, я могу легко достичь этого, изменив функцию functions.php, но как только тема получит обновление, цифра вернется к 8.

Итак, я хотел изменить функцию и добавить ее в функции child.php дочерней темы:

/* Related posts */ function longform_the_related_posts_change() { global $post; $tags = wp_get_post_tags($post->ID); if ($tags) { $tag_ids = array(); foreach($tags as $individual_tag) { $tag_ids[] = $individual_tag->term_id; } $args = array( 'tag__in' => $tag_ids, 'post__not_in' => array($post->ID), 'posts_per_page' => 4, // Number of related posts to display. 'ignore_sticky_posts' => 1 ); $my_query = new wp_query( $args ); ?> <h2 class="related-articles-title"><?php _e( 'Related articles', 'longform' ); ?></h2> <div class="related-articles"> <?php while( $my_query->have_posts() ) { $my_query->the_post(); ?> <div class="related-thumb col-sm-3 col-md-3 col-lg-3"> <a rel="external" href="<?php the_permalink(); ?>"> <?php the_post_thumbnail(array(500,350)); ?> <div class="related-content"> <h2><?php the_title(); ?></h2> </div> </a> </div> <?php } ?> <div class="clearfix"></div> </div> <?php } wp_reset_postdata(); wp_reset_query(); } add_filter( 'longform_the_related_posts', 'longform_the_related_posts_change' ); 

К сожалению, это не сработало. Он по-прежнему показывает 8 записей сообщений вместо 4, которые я ввел на странице posts_per_page.

Кто-нибудь знает, что там не так? Или есть более простой / короткий способ без копирования всего этого кода?

Я также попробовал вещь remove_filter, о которой упоминалось, но это тоже не сработало.

 longform_the_related_posts_child () { remove_filter('longform_the_related_posts'); add_filter('longform_the_related_posts', array( 'longform_the_related_posts_filter' => 'longform_the_related_posts', 'posts_per_page' => 4, ) ); } 

Solutions Collecting From Web of "Связанные должности: изменение функции для сообщений на странице"

Я просмотрел ваш код и обнаружил, что функция longform_the_related_posts отображает 8 связанных сообщений. Эта функция определена в functions.php родительской темы и вызывается в single.php.

Таким образом, чтобы переопределить функцию, выполните следующие шаги:
1. Создайте еще одну функцию, которая отображает 4 связанных сообщения в functions.php дочерней темы. (Поскольку вы уже создали функцию longform_the_related_posts_change() )
2. Скопируйте файл single.php из родительской в single.php тему и замените строку 47

Из

 echo longform_the_related_posts(); 

к

 echo longform_the_related_posts_change(); 

Это вызовет функцию, отображающую 4 сообщения.
Надеюсь это поможет.

Вышеприведенный код выглядит нормально. Я думаю, причина, по которой вы получаете 8 сообщений вместо 4, состоит в том, что у вас все еще есть код, который извлекает 8 сообщений в functions.php родительской темы.

Попробуйте удалить фильтр родительской темы в дочерней теме. Как это –

 remove_filter('<filter_name>','<function_name>'); 

Таким образом, функция родительских тем не будет действовать, и код детской темы будет работать.

Для получения дополнительной информации об remove_filter – https://codex.wordpress.org/Function_Reference/remove_filter

Надеюсь это поможет.