#wordpress #custom-fields
#wordpress #настраиваемые поля
Вопрос:
Я хочу, чтобы каждое сообщение в одной категории имело добавочное числовое значение, основанное на времени его создания.
Итак, в категории A первый пост имеет номер 1 в качестве значения пользовательского поля, второй номер 2 и т.д. Если я создаю сообщение в категории B, оно также имеет значение 1, если я после этого публикую сообщение в категории C, оно также имеет значение 1.
Это понятно? 🙂
Я нашел этот фрагмент, но он не учитывает проблему категории.
function updateNumbers() {
/* numbering the published posts: preparation: create an array with the ID in sequence of publication date, /
/ save the number in custom field 'incr_number' of post with ID /
/ to show in post (within the loop) use <?php echo get_post_meta($post- >ID,'incr_number',true); ?>
/ alchymyth 2010 */
global $wpdb;
$querystr = "SELECT $wpdb->posts.* FROM $wpdb->posts WHERE $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ";
$pageposts = $wpdb->get_results($querystr, OBJECT);
$counts = 0 ;
if ($pageposts):
foreach ($pageposts as $post):
setup_postdata($post);
$counts ;
add_post_meta($post->ID, 'incr_number', $counts, true);
update_post_meta($post->ID, 'incr_number', $counts);
endforeach;
endif;
}
add_action ( 'publish_post', 'updateNumbers' );
add_action ( 'deleted_post', 'updateNumbers' );
add_action ( 'edit_post', 'updateNumbers' );
Надеюсь, кто-нибудь может помочь!
Ответ №1:
может быть, вы можете использовать is_category() или что-то в этом роде внутри foreach ? найдите, являются ли сообщения одним и тем же cat, затем добавьте номер, найдите несколько других cat / сообщений, снова добавьте номер…
первое, что приходит на ум.