Inventory_Presser_Photo_Numberer::renumber_photos( int $post_id )
Reassigns sequence numbers to all photos attached to a vehicle post.
On This Page
Description Description
Useful after multiple attachments or when a photo is deleted.
Parameters Parameters
- $post_id
-
(int) (Required) The post ID of a vehicle.
Return Return
(void)
Source Source
File: includes/class-photo-numberer.php
public static function renumber_photos( $post_id ) {
// Get all of this vehicle's photos that have numbers.
$posts = get_children(
array(
'meta_key' => apply_filters( 'invp_prefix_meta_key', 'photo_number' ),
'orderby' => 'meta_value_num',
'post_parent' => $post_id,
'post_type' => 'attachment',
)
);
// Get all of this post's attachments with or without numbers.
$unnumbered_posts = get_children(
array(
'post_parent' => $post_id,
'post_type' => 'attachment',
)
);
if ( count( $posts ) === count( $unnumbered_posts ) ) {
return;
}
foreach ( $unnumbered_posts as $unnumbered_post ) {
$have_post_ids = array_column( $posts, 'ID' );
if ( ! in_array( $unnumbered_post->ID, $have_post_ids, true ) ) {
$posts[ $unnumbered_post->ID ] = $unnumbered_post;
}
}
$photo_count = count( $posts );
if ( 0 === $photo_count ) {
return;
}
$n = 1;
foreach ( $posts as $child_post_id => $post ) {
self::save_meta_photo_number( $child_post_id, $post_id, $n );
if ( 1 === $n ) {
// This is photo number 1, it should be the featured image.
set_post_thumbnail( $post_id, $child_post_id );
}
++$n;
}
self::delete_photo_transients( $post_id );
}
Expand full source codeCollapse full source codeView on Github