So erhalten Sie ein benutzerdefiniertes Feld auf einer einzelnen Ereignisseite
In diesem Artikel erfahren Sie, wie Sie benutzerdefinierte Felder erhalten einzelne EreignisseiteDie Daten der benutzerdefinierten Ereignisfelder werden gespeichert in WordPress Meta, und Sie können mit der Funktion get_post_meta darauf zugreifen. Bitte überprüfen Sie den folgenden Code.
Benutzerdefiniertes Feld auf einer einzelnen Ereignisseite abrufen
$event_id = get_the_ID(); // Or you can get it from request parameters
$data = get_post_meta($event_id, 'mec_fields', true);
print_r($data); // Temporarily print the data to see it
Felderkonfiguration
Sie benötigen außerdem die Felderkonfiguration
$main = MEC::getInstance('app.libraries.main');
$fields = $main->get_event_fields();
if(!is_array($fields) ) $fields = array();
print_r($fields); // Temporarily print the configuration to see the structure
Wenn Sie sowohl $fields als auch $data verwenden, können Sie alle Felder (oder die gewünschten Felder) in der Ausgabe ausgeben. Sehen Sie sich den folgenden Code an.
foreach($fields as $field_id => $item) {
// Not a field
if(!is_numeric($field_id)) continue;
// Only display desired fields
if(!in_array($field_id, [1,2,3])) continue;
// Field Data
$result = isset($data[$field_id]) ? $data[$field_id] : NULL;
// Empty Value
if((!is_array($result) and trim($result) == '') or (is_array($result) and !count($result))) continue;
$type = isset($item['type']) ? $item['type'] : 'text';
if(isset($field['label'])) {
echo '<span class="mec-event-data-field-name">'.esc_html__(stripslashes($field['label']), 'mec').': </span>';
}
if($type === 'email') {
echo '<span class="mec-event-data-field-value"><a href="mailto:'.esc_attr($value).'">'.esc_html($value).'</a></span>';
} elseif($type === 'tel') {
echo '<span class="mec-event-data-field-value"><a href="tel:'.esc_attr($value).'">'.esc_html($value).'</a></span>';
} elseif($type === 'url') {
echo '<span class="mec-event-data-field-value"><a href="'.esc_url($value).'" target="_blank">'.esc_html($value).'</a></span>';
} elseif($type === 'date') {
$value = $main->to_standard_date($value);
echo '<span class="mec-event-data-field-value">'.esc_html($this->main->date_i18n($date_format, strtotime($value))).'</span>';
} elseif($type === 'textarea') {
echo '<span class="mec-event-data-field-value">'.wpautop(stripslashes($value)).'</span>';
} else {
echo '<span class="mec-event-data-field-value">'.(is_array($value) ? esc_html(stripslashes(implode(', ', $value))) :
esc_html(stripslashes($value))).'</span>';
}
}
Veraltete Inhalte melden
Wenn Sie der Meinung sind, dass der Inhalt dieser Seite keine aktuellen Informationen enthält, teilen Sie uns dies bitte mit.