Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
December | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | February | February | February |
m om 1 B%V ȥ%V A bindymorris.com.dob.sibl.support-intelligence.net ! X-Mailer q %V ?T@ wetransfer.zendesk.com.dbl.spamhaus.org.Net::DNS::DomainName1035 A `˴%V t A `˴%V t ! lampenundleuchten.de %V k%V %V ! 18 V A %%V i$%V 0k]%V !%V `%V x%V hL%V A `˴%V t A `˴%V t A UK%V %V %V h$%V pL%V 8%V T%V 1 Sep 28 22:10:08.100754 %V ! %V ! 124 e.com ಠ%V 0%V E ? . ) .co.za F ޑ ಠ%V ޑ E ? . ) .edu.za F ! ޑ p1%V ޑ 1 ޑ ޑ и%V %V %V D `&%V -%V 0%V |%V J%V w P*ɴ%V p%V 6H%V @%V C%V D` P%V Pf%V %V %V D .%V %V d%V ,%V D @%V 0%V D 0%V %V %V I%V @ =%V %V Q 1%V p%V w P*ɴ%V H%V w(%V `%V %V 0V%V %V " %V @%V %V %V 7)%V %V p.%V 9%V %V 8%V %V P%V n%V w P*ɴ%V p0%V @;%V !-%V %V D`,%V %V P>%V ($%V P2%V H-%V %V %V b%V D`%V p\%V p%V %V %V L%V X-G%V @k%V %V @HM%V %V %V @P%V `%V `a%V %V Q %V D%V 0 %V @V%V I%V %V %V x %V %V %V sc%V b%V P %V 0D%V %V %V `"%V " %V bx%V /%V " `%V " 3%V h|%V %V " _%V "` 1%V D x%V %V "%V `%V `%V ` P%V %V u%V D %V Y%V Q `%V <%V D s %V %V {%V p%V &|%V ~l%V 0'%V %V D` %V %V @B%V %V Ђ%V D`^%V %V `%V x"&%V @%V @%V V%V P-%V %V D` %V %V " %V К%V " %V %V Po%V %V D` P%V %V D` %V %V `%V P%V X%V K%V v%V x%V " ?@Z%V &%V @]%V x%V @%V R%V %V D p%V `u%V ";%V %V Q PV3%V X%V `J%V p%V D` @q%V 3%V PA%V D` %V X%V !_%V F>%V (s%V H%V D` I%V %V e_deleted', $indexable ); } /** * Updates the relations when the post indexable is built. * * @param Indexable $indexable The indexable. * @param WP_Post $post The post. */ public function updated_indexable( $indexable, $post ) { // Only interested in post indexables. if ( $indexable->object_type !== 'post' ) { return; } if ( \is_a( $post, Indexable::class ) ) { \_deprecated_argument( __FUNCTION__, '17.7', 'The $old_indexable argument has been deprecated.' ); $post = $this->post->get_post( $indexable->object_id ); } $this->update_relations( $post ); $indexable->save(); } /** * Saves post meta. * * @param int $post_id Post ID. * * @return void */ public function build_indexable( $post_id ) { // Bail if this is a multisite installation and the site has been switched. if ( $this->is_multisite_and_switched() ) { return; } try { $indexable = $this->repository->find_by_id_and_type( $post_id, 'post', false ); $indexable = $this->builder->build_for_id_and_type( $post_id, 'post', $indexable ); $post = $this->post->get_post( $post_id ); /* * Update whether an author has public posts. * For example this post could be set to Draft or Private, * which can influence if its author has any public posts at all. */ if ( $indexable ) { $this->update_has_public_posts( $indexable ); } // Build links for this post. if ( $post && $indexable && \in_array( $post->post_status, $this->post->get_public_post_statuses(), true ) ) { $this->link_builder->build( $indexable, $post->post_content ); // Save indexable to persist the updated link count. $indexable->save(); $this->updated_indexable( $indexable, $post ); } } catch ( Exception $exception ) { $this->logger->log( LogLevel::ERROR, $exception->getMessage() ); } } /** * Updates the has_public_posts when the post indexable is built. * * @param Indexable $indexable The indexable to check. */ protected function update_has_public_posts( $indexable ) { // Update the author indexable's has public posts value. try { $author_indexable = $this->repository->find_by_id_and_type( $indexable->author_id, 'user' ); if ( $author_indexable ) { $author_indexable->has_public_posts = $this->author_archive->author_has_public_posts( $author_indexable->object_id ); $author_indexable->save(); $this->reschedule_cleanup_if_author_has_no_posts( $author_indexable ); } } catch ( Exception $exception ) { $this->logger->log( LogLevel::ERROR, $exception->getMessage() ); } // Update possible attachment's has public posts value. $this->post->update_has_public_posts_on_attachments( $indexable->object_id, $indexable->is_public ); } /** * Reschedule indexable cleanup if the author does not have any public posts. * This should remove the author from the indexable table, since we do not * want to store authors without public facing posts in the table. * * @param Indexable $author_indexable The author indexable. * * @return void */ protected function reschedule_cleanup_if_author_has_no_posts( $author_indexable ) { if ( $author_indexable->has_public_posts === false ) { $cleanup_not_yet_scheduled = ! \wp_next_scheduled( Cleanup_Integration::START_HOOK ); if ( $cleanup_not_yet_scheduled ) { \wp_schedule_single_event( ( \time() + ( \MINUTE_IN_SECONDS * 5 ) ), Cleanup_Integration::START_HOOK ); } } } /** * Updates the relations on post save or post status change. * * @param WP_Post $post The post that has been updated. */ protected function update_relations( $post ) { $related_indexables = $this->get_related_indexables( $post ); foreach ( $related_indexables as $indexable ) { // Ignore everything that is not an actual indexable. if ( \is_a( $indexable, Indexable::class ) ) { $indexable->object_last_modified = \max( $indexable->object_last_modified, $post->post_modified_gmt ); $indexable->save(); } } } /** * Retrieves the related indexables for given post. * * @param WP_Post $post The post to get the indexables for. * * @return Indexable[] The indexables. */ protected function get_related_indexables( $post ) { /** * The related indexables. * * @var Indexable[] $related_indexables . */ $related_indexables = []; $related_indexables[] = $this->repository->find_by_id_and_type( $post->post_author, 'user', false ); $related_indexables[] = $this->repository->find_for_post_type_archive( $post->post_type, false ); $related_indexables[] = $this->repository->find_for_home_page( false ); $taxonomies = \get_post_taxonomies( $post->ID ); $taxonomies = \array_filter( $taxonomies, 'is_taxonomy_viewable' ); $term_ids = []; foreach ( $taxonomies as $taxonomy ) { $terms = \get_the_terms( $post->ID, $taxonomy ); if ( empty( $terms ) || \is_wp_error( $terms ) ) { continue; } $term_ids = \array_merge( $term_ids, \wp_list_pluck( $terms, 'term_id' ) ); } $related_indexables = \array_merge( $related_indexables, $this->repository->find_by_multiple_ids_and_type( $term_ids, 'term', false ) ); return \array_filter( $related_indexables ); } /** * Tests if the site is multisite and switched. * * @return bool True when the site is multisite and switched */ protected function is_multisite_and_switched() { return \is_multisite() && \ms_is_switched(); } }
Sun | Mon | Tue | Wed | Thu | Fri | Sat |
---|---|---|---|---|---|---|
December | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | February | February | February |