it-swarm.com.de

Benutzerdefinierte Spalte für den Beitragstyp, in der Daten verglichen werden?

Ich habe einen benutzerdefinierten Beitragstyp, bei dem die Beiträge ein Start- und ein Enddatum haben. Diese werden als Unix-Zeitstempel/-Epoche in der Datenbank gespeichert. Ich möchte eine Spalte für diesen benutzerdefinierten Beitragstyp namens "Active" erstellen, in der ich ein grünes Symbol anzeigen möchte, wenn das aktuelle Datum und die aktuelle Uhrzeit zwischen dem Start- und Enddatum liegen.

Wie ziehe ich die Metadaten und vergleiche sie mit dem aktuellen Datum/der aktuellen Uhrzeit und zeige bei "true" ein grünes Symbol an, wenn nicht ein rotes?

Ich habe diese Funktion, die fast das gleiche macht, aber für Suchergebnisse. Ich kann jedoch nicht herausfinden, wie dies in einer Spalte verwendet wird:

function filter_search_results( $search_query ) {
$time = current_time( 'timestamp' );
    if ( $search_query->is_search ) {
        $search_query->set( 'meta_query', array(
            'relation' => 'AND',
            array(
                'key' => 'visitor-start-date',
                'value' => $time,
                'compare' => '<='
            ),
            array(
                'key' => 'visitor-end-date',
                'value' => $time,
                'compare' => '>='
            ),
        ) );
    }
}
add_action( 'pre_get_posts', 'filter_search_results' );
3
joq3

Ich habe es gelöst:

  if ( 'visitor_active' == $column_name ) {
    $start_date = get_post_meta( $post_id, 'visitor-start-date', true );
    $end_date = get_post_meta( $post_id, 'visitor-end-date', true );
    $current_time = current_time( 'timestamp' );
      if ($start_date < $current_time && $end_date > $current_time) {
        echo '<span class="dashicons dashicons-yes" style="color:#75c377;"></span>';
      }
      else {
        echo '<span class="dashicons dashicons-no" style="color:lightgray;"></span>';
      }
  }

Sie wissen nicht, ob dies der beste Weg ist?

3
joq3