1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Date & Time Picker geht lokal, aber nicht auf Server

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von visualworkers, 1. Juni 2015.

Schlagworte:
  1. visualworkers

    visualworkers Member

    Registriert seit:
    21. Mai 2015
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo Wordpress-Freunde,

    ich habe das Problem das folgender Code auf localhost läuft, aber auf dem Server zeigt er nur die Überschrift des ersten Beitrages und ab der Anzeige des News-Datums zeigt er nichts mehr an. Entferne ich die Zeile: <?php $date = DateTime::createFromFormat('Ymd', get_field('date_picker'));
    echo $date->format(''); ?> zeigt er alle News Beiträge ohne Datumsangabe an.

    Hier der gesamte Code:

    <h1 class="h1-content"><?php single_cat_title(); ?></h1>


    <?php
    $args = array (
    'category' => 12,
    'posts_per_page' => 5,
    'cat' => get_option("neuigkeiten"),
    'meta_key' => 'date_picker', // name of custom field
    'orderby' => 'meta_value_num',
    'order' => 'DESC');
    $myposts = get_posts( $args );
    foreach( $myposts as $post ) : setup_postdata($post);
    ?>
    <!--<div style="width:400px; height:200px; border:1px soid white;"></div>-->
    <div class="news">

    <div class="news-datum">
    <h1 class="h1-news-titel"><?php the_title(); ?></h1>
    <h1 class="h1-news-datum"><?php $date = DateTime::createFromFormat('Ymd', get_field('date_picker'));
    echo $date->format(''); ?></h1>
    </div> <!--.news-datum-->

    <div style="clear:both"></div>

    <div class="news-text">
    <?php the_content(); ?>
    </div> <!--.news-text-->

    <div class="news-streifen" style="height:1px; xborder:1px solid red;"></div>

    </div> <!--.news-->
    <?php endforeach; ?>


    Wäre für einen Tipp echt dankbar, denn ich habe alles möglich probiert und komme aber nicht zur Lösung.

    Hier noch ein Link zur fehlerhaften Anzeige:
    http://www.visualworkers.de/b2b/redemann/spedition/?cat=12

    Vielen Dank

    Gruß Thomas
     
  2. websupporter

    websupporter Active Member

    Registriert seit:
    19. August 2014
    Beiträge:
    36
    Zustimmungen:
    0
    Mach mal den WP_DEBUG Modus an. Du wirst wahrscheinlich genau an der Stelle einen Fatal Error haben. Tippe schlicht auf eine unterschiedliche Server Einstellung.

    Noch ein Schuss ins Blaue: Hast Du ACF auch online aktiviert?
     
  3. visualworkers

    visualworkers Member

    Registriert seit:
    21. Mai 2015
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo websupporter, danke erstmal dass ich über die Existenz des WP Debug Modus informiert wurde ;)

    Hab ihn mal aktiviert, jetzt kommt folgendes (ich verstehe nur Bahnhof):

    http://www.visualworkers.de/b2b/redemann/spedition/?cat=12

    hier nochmal für's Forum zum besseren Verständniss der Problemlösung auf lange Sicht:

    [h=1]Fatal error: Call to undefined method DateTime::createFromFormat() in /mnt/web5/c1/17/52547517/htdocs/b2b/redemann/spedition/wp-content/themes/redemann/category-neuigkeiten.php on line 66[/h]
    Vielen Dank dass du mir hilfst, ich komme da als Grafiker mit meinem PHP Defizit nicht alleine weiter, also nochmal Dank an dich!

    Gruß Thomas
     
  4. websupporter

    websupporter Active Member

    Registriert seit:
    19. August 2014
    Beiträge:
    36
    Zustimmungen:
    0
    createDateFormat gibt es seit PHP Version 5.3. Wahrscheinlich läuft auf dem Server eine ältere Version. Kannst Du mit phpinfo() checken.

    Lösung 1: Update PHP auf eine aktuellere Version.
    Lösung 2: Du musst das Formatieren selbst übernehmen:

    Du kriegst ja wahrscheinlich mit get_field() einen String wie den folgenden 20150228 für den 28. Februar 2015. Den willst Du bspw. in 28.02.2015 verwandeln? Guck Dir mal diesen Code an:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  5. visualworkers

    visualworkers Member

    Registriert seit:
    21. Mai 2015
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo websupporter,

    danke erstmal für deinen Code. Also ich habe bei Strato jetzt auf PHP 5.6 umgestellt, jetzt zeigt er zwar die drei Newsbeiträge an aber ohne ein Datum.

    Habe dann noch deinen Code eingebaut, da zeigt er aber immer nur das implementierte Datum an, was muss ich da noch verändern? Wäre ja sicher besser wenn das unter PHP 5.6 funktioniert, denn ich weiss ja nicht welche Version dann letztlich auf dem Server des Kunden läuft (hab noch keine Zugangsdaten).

    Und noch eine Frage, er zeigt die Umlaute jetzt nach Umstellung auf 5.6 nicht mehr an, schau mal:

    http://www.visualworkers.de/b2b/redemann/spedition/?cat=12

    vielen Dank für deine Hilfe, wenn du mal was in sachen Grafik brauchst, ich helfe dir auch, kein Thema!

    Gruß Thomas
     
  6. websupporter

    websupporter Active Member

    Registriert seit:
    19. August 2014
    Beiträge:
    36
    Zustimmungen:
    0
    "Habe dann noch deinen Code eingebaut, da zeigt er aber immer nur das implementierte Datum an, was muss ich da noch verändern?"
    Kannst Du mir mal den Output schicken von
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dann kann man sehen, in welchem Format das Datum eigentlich abgespeichert ist.

    Bzgl. der Umlaute. Autsch. Hmmm... Also im HTTP-Header wirds via ISO übertragen. Im meta-tag wird UTF8 angegeben. Denke mal, Du hast die Standart-Einstellungen, also in der Datenbank UTF8. Wieso der HTTP-Header ISO-Schriftsatz übergibt ist mir nicht ganz klar. Ich glaube WP sorgt normalerweise für die korrekte Übertragung auch im HTTP-Header.

    Da dank WP_DEBUG relativ viele Fehlermeldungen noch vor der doctype-Deklaration kommen hmm... Vielleicht einfach mal probieren WP_DEBUG auszuschalten, obs dann klappt?

    Anderer Versuch falls es nicht klappt: Also der Server gibt jetzt über HTTP ISO aus, während du UTF8 brauchst. Vielleicht einfach die htaccess entsprechend erweitern: http://stackoverflow.com/questions/7963390/how-to-specify-the-character-set-in-the-http-content-type-response-header

    Klappt es dann wieder?
     
  7. visualworkers

    visualworkers Member

    Registriert seit:
    21. Mai 2015
    Beiträge:
    15
    Zustimmungen:
    0
    Hallo Websupporter,

    habe die Probleme folgendermaßen lösen können:

    ACF:

    <?php

    $date = get_field('date_picker');
    // $date = 19881123 (23/11/1988)

    // extract Y,M,D
    $y = substr($date, 0, 4);
    $m = substr($date, 4, 2);
    $d = substr($date, 6, 2);

    // create UNIX
    $time = strtotime("{$d}-{$m}-{$y}");

    // format date
    echo date('d.m.Y', $time);

    ?>

    Und die Umlaute gingen nachdem ich:

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    in die header.php einfügte....

    Vielen Dank für deine Hilfe!

    Gruß

    Thomas
     
  8. websupporter

    websupporter Active Member

    Registriert seit:
    19. August 2014
    Beiträge:
    36
    Zustimmungen:
    0
    Na, freut mich, dass es geklappt hat :)
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden