ACF, Makerlog und Datumsfeld in WP Job Manager

Kevin Pliester
Veröffentlicht am

In einem der letzten Beiträge ging es noch darum, dass Advanced Custom Fields nicht mehr für den Block Editor (Gutenberg) geeignet ist und ich deshalb Block Lab empfehle. Das hat sich schon fast geändert. Außerdem gibt es Neuigkeiten zu Makerlog und einen Schnipsel dafür, wie ihr ein eigenes Datumsfeld im WP Job Manager anlegt.

ACF und der Block Editor

In der aktuellen Beta-Version von ACF (Advanced Custom Fields) lassen sich eigene Blöcke mittels PHP erstellen. Das Ganze funktioniert kinderleicht und schon recht gut. Support dazu gibt es wie gewohnt im Support Forum von ACF. Weitere führende Links:

Makerlog Version 2.0

Makerlog ist eine öffentliche Aufgabenverwaltung (meine Interpretation) und hilft mir meine Arbeit zu erledigt. Dort liste ich meine Todos anonym auf und arbeite sie deshalb schneller ab. Mit Version 2.0 gab es einige Neuerungen und Verbesserungen. Außerdem läuft die Seite jetzt wesentlich schneller und sieht zudem noch etwas schicker aus.

Wer also gerne Kontakt zu anderen „Machern“ aufnehmen und seine Arbeit mit der Community teilen möchte, ist dort bestens aufgehoben.

WP Job Manager: Datumsfeld einfügen

Zum Schluss noch ein kurzer Schnipsel (OOP) zum Einfügen eines eigenen Datumsfeld in den WP Job Manager. Im Netz gibt es dazu leider keine Hilfestellungen, deshalb musste ich selbst im Code herumsuchen – vor allem weil die Dokumentation vom WP Job Manager aufgrund der Preispolitik nur rudimentär bestückt ist. Vielleicht hilft dir der Schnipsel ja auch.

Ich habe nicht viel kommentiert, weil der Code ziemlich selbst erklärend ist (Meiner Meinung nach).

<?php
new StartDate;

class StartDate
{
	// die eigene textdomain zum übersetzen
	public $textdomain = 'my-domain';
	
	/**
	 * Konstruktor der beim Aufrufen der Klasse ausgeführt wird.
	 */
	public function __construct()
	{		
		// feld fürs frontend registrieren
		add_filter( 'submit_job_form_fields', [ &$this, 'frontend_field' ] );
		
		// feld für den adminbereich registrieren
		add_filter( 'job_manager_job_listing_data_fields', [ &$this, 'admin_field' ] );
		
		// feld im frontend ausgeben
		add_action( 'single_job_listing_meta_end', [ &$this, 'frontend_callback' ] );
	}

	/**
	 * Das Feld für das Frontend.
	 *
	 * @param array $fields
	 * @return array
	 */
	public function frontend_field( $fields )
	{
		$fields['job']['job_startdate'] = [
			'label'       => __( 'Jobangebot Startdatum', $this->textdomain ),
			'classes'     => [ 'job-manager-datepicker' ],
			'type'        => 'date',
			'placeholder' => null,
			'priority'    => 7,
			'required'    => false,
		];
		
		return $fields;
	}

	/**
	 * Das Feld für den WordPress-Admin-Bereich.
	 *
	 * @param array $fields
	 * @return array
	 */
	public function admin_field( $fields )
	{
		$fields['_job_startdate'] = [
			'label'       => __( 'Jobangebot Startdatum', $this->textdomain ),
			'classes'     => [ 'job-manager-datepicker' ],
			'placeholder' => null,
			'type'        => 'text',
			'description' => ''
		];
		
		return $fields;
	}

	/**
	 * Das HTML für das Frontend.
	 *
	 * @global $post
	 * @return void
	 */
	public function frontend_callback()
	{
		global $post;
		
		$start = get_post_meta( $post->ID, '_job_startdate', true );
		
		if ( $start ) {
			$timestamp = strtotime($start);
			$start = human_time_diff(get_the_time('U'), $timestamp);
			echo '<li class="date-posted">' . sprintf( __( 'Start in %s', $this->textdomain ), esc_html( $start ) ) . '</li>';
		}
	}
}

Helpful Update

Für Helpful gab es ein kleines Update. Zum einen wurden Scripte die im Frontend geladen werden korrigiert und zum Anderen gibt es ein neues Design (simple). Das Design ist ungefähr so aufgebaut, wie das aktuelle Design hier bei Pixelbuben. Also ohne Border usw.

Hat dir der Beitrag gefallen?