WordPress: get_option( 'date_format' )

Hank Moody

Ficken & Schläge
Registriert
3 Aug. 2013
Beiträge
959
Hi Leute,

ich bastele gerade an meinem Blog und nutze das Plugin , um eine Artikelserie zu erstellen. Das klappt auch ganz gut, leider sieht die Ausgabe so aus:



Prinzipiell ganz in Ordnung, wie ihr seht ist das Datum allerdings in US-Schreibweise hinterlegt, was mir nicht gefällt. Das Plugin holt sich scheinbar die Datumseinstellungen vom Admin-Bereich, der so aussieht:



Sollte also eigentlich den korrekten Wert ausgeben. Leider tut er das, wieso auch immer, nicht - egal, wie oft ich noch versuche zu speichern. :D

Die dazugehörige php-Datei sieht aktuell so aus:

[src=php]<aside class="<?php echo $post_series_box_class; ?>">
<p class="wp-post-series-name">
<?php
if ( apply_filters( 'wp_post_series_enable_archive', false ) ) {
$series_name = '<a href="' . get_term_link( $series->term_id, 'post_series' ) . '">' . esc_html( $series->name ) . '</a>';
} else {
$series_name = esc_html( $series->name );
}
printf( __( 'Artikel %d von %d unseres Reiseberichts <em>“%s”</em>.', 'wp-post-series' ), $post_in_series, sizeof( $posts_in_series ), $series_name );
?>
</p>

<?php if ( is_single() && sizeof( $posts_in_series ) > 1 ) : ?>

<nav class="wp-post-series-nav">
<ul>
<?php foreach ( $posts_in_series as $key => $post_id ) : ?>
<li>
<?php if ( ! is_single( $post_id ) && 'publish' === get_post_status( $post_id ) ) echo '<a href="' . get_permalink( $post_id ) . '">'; ?>
<?php echo 'publish' === get_post_status( $post_id ) ? get_the_title( $post_id ) : sprintf( __( '%s – <em>geplant für den %s</em>', 'wp-post-series' ), get_the_title( $post_id ), get_post_time( get_option( 'date_format' ), false, $post_id ) ); ?>
<?php if ( ! is_single( $post_id ) && 'publish' === get_post_status( $post_id ) ) echo '</a>'; ?>
</li>
<?php endforeach; ?>
</ul>
</nav>
<?php endif; ?>

<?php if ( is_single() ) : ?>
<?php if ( $description ) : ?>
<div class="wp-post-series-description"><?php echo wpautop( wptexturize( $description ) ); ?></div>
<?php endif; ?>

<?php endif; ?>
</aside>[/src]

Habt ihr eine Idee? Ich stehe gerade auf dem Schlauch...
 
[src=php]get_post_time( get_option( 'date_format' ), false, $post_id )[/src]

ist für die Datumsausgabe verantwortlich.
Das Datumsformat, welches du dir mit get_option( 'date_format' ) holst, ist in Ordnung. Es beschreibt in deinem Fall nur, dass der Kalendertag des Monats (1-31) ohne führende 0, gefolgt von einem Punkt, einem Leerzeichen, dem Monatsnamen und der vierstelligen Jahreszahl verwendet werden soll.
Der zweite Parameter gibt an, ob du in GMT ausgeben möchtest, false sollte in Ordnung sein, außer du willst irgendeine Zeitzone erzwingen.
Der dritte Parameter ist der Post, dessen Datum ermittelt werden soll. Auch das stimmt soweit.

Was im Plugin nicht verwendet wurde und für dich entscheidend ist, ist der vierte Parameter. In der Wordpress Dokumentation wird die Funktion get_post_time nämlich so beschrieben:

[src=php]get_post_time( $d, $gmt, $post, $translate );[/src]

Der vierte Parameter, übrigens ein bool-Flag, gibt an, ob die Datums-/Zeitangabe übersetzt werden soll, oder nicht. Standard ist, dass nicht übersetzt wird. Daher wird dein Datum "falsch" angezeigt. Damit das Datum "in deutsch" angezeigt wird, musst du also lediglich das Flag auf true setzen:

[src=php]get_post_time( get_option( 'date_format' ), false, $post_id, true )[/src]



Übrigens habe ich mal deinen Blog überflogen. Nur weiter so!
 
Zurück
Oben