2016-11-04 5 views
1

Это странный вопрос. Он был запрошен клиентом, но у меня возникли проблемы с поиском каких-либо примеров его выполнения до этого, поэтому я просто ищу любой намек или след для выполнения этой работы.Ограничить количество сообщений, которые могут быть установлены для Featured

У меня есть сайт Wordpress, построенный с использованием таксономии. Домашняя страница настроена только для отображения шести признанных сообщений, и по умолчанию она отображает их в том порядке, в котором они были опубликованы.

Что хочет клиент, так это наличие какой-либо функциональности, которая ограничивает количество сообщений, которые могут быть установлены в любое время. Таким образом, пример того, как это идеально будет работать, будет шесть признанных сообщений, админ входит и устанавливает новый пост, как показано. В результате сообщение, которое было в последнее время установлено как признанное, автоматически удаляется из категории избранных должностей, гарантируя, что в любое время будет установлено только шесть.

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

У меня возникли проблемы с поиском какого-либо примера этого, если это было сделано раньше, если кто-то сделал что-то подобное или знает, где я могу начать изучать эту функциональность, это будет большой помощью. Надеюсь, я смог описать, что они ищут достаточно ясно.

ответ

0

Насколько я знаю, Избранные сообщения не являются частью ядра WordPress, поэтому это будет ваша тема, которая обрабатывает выделенный почтовый индекс.

Не зная, какова ваша тема, я не могу оказать конкретную помощь.

Сверху моей головы создайте признанный массив сообщений, используйте count(), чтобы отслеживать количество элементов в массиве. Используйте, если statments с array_unshift() добавить к фронту массива и array_pop(), чтобы удалить сообщение из задней части массива, когда оно превышает максимальное количество признанных сообщений.

Это сообщение, которое может дать вам представление о том, как это можно сделать. http://www.hongkiat.com/blog/wordpress-featured-content/

Обращайтесь в службу поддержки создателя вашей темы, также является хорошим вариантом.

+0

Тема была Подчеркивания и признакам вариант был создан с помощью если это помогает. Спасибо за ссылку, я обязательно прочитаю и попытаюсь найти решение здесь. –

0

На самом деле это не так просто, поскольку функция признака сообщения не построена для этого. Однако я предлагаю следующее:

Псевдо-код:

// On save post check if the post is featured 

// If the post is featured get the number of featured posts from the database 

// if the number of featured posts from the database including the current post is greater than six un-feature the post with the oldest timestamp 

Этот код не проверял, но он должен работать так же:

add_action('save_post','ensure_only_6_stickies'); 

function ensure_only_6_stickies($post_id) { 

    if(is_sticky($post_id)) { 
    $stickies = get_option('sticky_posts'); 

    if(is_array($stickies) && !in_array($post_id,$stickies) && count($stickies)>=6) { 
     $stickies = array_slice($stickies,5); 
     array_push($post_id,$stickies); 
     update_option('sticky_posts',$stickies); 
    } 
    } 
} 
+0

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

+0

Хорошо, я думал, вы говорите о липках. Однако концепция должна быть очень похожей. На save_post проверьте, сколько сообщений указано, и если его> 6 удалите старейший из них. – Blackbam