Verfasste Forenbeiträge

Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)
  • Thread-Starter sebiev

    (@sebiev)

    Danke Bego, werde ich mir merken, und entschuldige wegen der gestrigen Mehrarbeit deinerseits! Hab es mir auf die Fahne geschrieben.

    Thread-Starter sebiev

    (@sebiev)

    Habe über register_rest_route eine Route definiert und diese konnte ich ansprechen. Er setzt zwar den CustomPostType Beitrag auf publish, passt aber nicht den Permalink an.

    Lass die Sache jetzt über die function.php laufen, da wird die Permalinkstruktur aktualisiert.

    Danke!

    Thread-Starter sebiev

    (@sebiev)

    Hallo Bego, danke für deine Antwort.

    Irgendwie findet die Diskussion in dem Thread statt -> https://de.wordpress.org/support/topic/rest-api-post-published-und-dennoch-404/

    Mir ist bekannt, wie der Cron von WP arbeitet und wo der Unterschied zu einem richtigen Cronjob liegt. Ich aktualisiere hier auf der Umgebung permanent, zumindest aktuell, da ich auf dem System arbeite.

    Es liegt wohl eher an der registrierung des Custom post types, welcher zwar vorhanden ist, aber irgendwie auch nicht.

    Thread-Starter sebiev

    (@sebiev)

    Es gibt kein nennenswertes Plugin, welches stören könnte. Außer unser eigenes, welches ich hier nicht hochladen kann.

    Ich denke auch, dass das Übel da vergraben liegt. Jedoch versuche ich noch zu verstehen, wo das Problem liegen kann.

    Über die function.php registriere ich den Posttype für die Rest API

    function sb_add_cpts_to_api( $args, $post_type ) {  
        if ( 'car-displays' === $post_type ) {
            $args['show_in_rest'] = true;
        }
        return $args;
    }
    add_filter( 'register_post_type_args', 'sb_add_cpts_to_api', 10, 2 );

    Ausgabe

    $args = 
    ["public"]=>
      bool(true)
      ["rewrite"]=>
      array(1) {
        ["slug"]=>
        string(4) "cars"
      }
      ["show_in_menu"]=>
      string(15) "manager"
      ["menu_icon"]=>
      string(90) "icon2.png"
      ["supports"]=>
      array(4) {
        [0]=>
        string(5) "title"
        [1]=>
        string(6) "editor"
        [2]=>
        string(9) "thumbnail"
        [3]=>
        string(6) "author"
      }
      ["has_archive"]=>
      bool(true)
      ["show_in_rest"]=>
      bool(true)
      ["rest_base"]=>
      string(4) "cars"
      ["rest_controller_class"]=>
      string(24) "WP_REST_Terms_Controller"
      ["hierarchical"]=>
      bool(false)

    doch mit https://…/wp-json/wp/v2/car-displays findet er diesen Posttype nicht.

    {"code":"rest_no_route","message":"Es wurde keine Route gefunden, die mit der URL und der Request-Methode identisch ist.","data":{"status":404}}

    Auch ein Test auf den Posttype selber, wird nichts gefunden.

    add_action( 'wp_loaded', 'check_posttype');
    
    function check_posttype()
    {
        $args = array(
        'post_type'       => 'car-displays'
    );
        
    $my_posts = get_posts( $args );
    echo "<pre>";  var_dump($my_posts); echo "</pre>";
    
    }
    
    array(0) {
    }


    Moderationshinweis: Codeformatierung bereinigt. Der Beitrag war im Spam-Filter gelandet.

    • Diese Antwort wurde geändert vor 1 Jahr, 7 Monaten von sebiev.
    • Diese Antwort wurde geändert vor 1 Jahr, 7 Monaten von Bego Mario Garde.
    Thread-Starter sebiev

    (@sebiev)

    Ich habe eben festgestellt, dass ich über get_posts mit meinem post_type nichts zurückbekomme. Obwohl in der Datenbank unter posts im Feld Posttypes der richtige Type zu finden ist.

    add_action( 'wp_loaded', 'check_posttype');
    
    function check_posttype()
    {
        $args = array(
        'post_type'       => 'car-displays'
    );
    $my_posts = get_posts( $args );
    echo "<pre>";  var_dump($my_posts); echo "</pre>";
    }
    Thread-Starter sebiev

    (@sebiev)

    schlimm? Habs gelöscht.

    Thread-Starter sebiev

    (@sebiev)

    Nein, der Cron läuft, da die „normalen“ geplanten Posts ordnungsgemäß Veröffentlicht werden.

    Es werden keine Probleme unter Websitezustand aufgeführt.

    Thread-Starter sebiev

    (@sebiev)

    Hallo,
    Danke für deine Antwort.

    Nein, dies hatte ich schon getestet.

    Ich setze den Beitrag auf future und einem Delay von 10min. Der WordPressCron veröffentlicht den Beitrag jetzt ganz normal und es kommt zu keinem 404 Fehler.

    Noch interessanter ist die Thematik/Problematik bei eigenen Post Types. Da wird der Beitrag gar nicht veröffentlicht und es kommt immer zu einer „Verpasste Planung“ meldung.

    Thread-Starter sebiev

    (@sebiev)

    [php]
     get_post_meta($post_id, ‘$key’, $single);
    [/php]

    »Post_id« steht dabei für die ID-Nummer des Artikels, »key« steht für den Namen des Custom Fields und »single« (true oder false) bestimmt, ob der Wert als string (für einen einzelnen Wert) oder als array (bei mehreren Werten für ein benutzerdefiniertes Feld) ausgegeben wird.

    Das dann filtern und in der layout php verknüpfen.

    Dennoch danke. erledigt

    • Diese Antwort wurde geändert vor 1 Jahr, 8 Monaten von sebiev.
    Thread-Starter sebiev

    (@sebiev)

    Das verstehe ich nicht ganz, WordPress wird doch wohl einen eigenen Hook besitzen um auf die Metas bzw. auf die benutzerdefinierte Felder zugreifen zu können. Das ist doch Theme unabhängig. Meine Thematik ist doch nicht Avada spezifisch. Komische Aussage… sorry

    Thread-Starter sebiev

    (@sebiev)

    Ein Workaround wäre, per Metabox einen beliebigen Namen als Post-Meta in einem Custom Field zu erfassen. Die Ausgabe als Autor setzt aber voraus, dass du das Beitrags-Template in einem Child-Theme anpasst, indem du die vorhandenen Meta-Daten entfernst und den Inhalt des Custom Field ausgibst.

    Genau, dass war ja im zweiten Absatz meiner Frage und ein möglicher Lösungsansatz.

    Aber die ganzen Metadaten zu entfernen ist zu viel. Da fehlen das Datum und die Kategorien.

    Kann man diese irgendwo über einen Hook abfangen, ändern und wieder ausgeben?

    Ich arbeite mit dem Avada Theme.

    Avada()->settings->get( 'post_meta' ) && ( Avada()->settings->get( 'post_meta_author' ) || Avada()->settings->get( 'post_meta_date' ) || Avada()->settings->get( 'post_meta_cats' ) || Avada()->settings->get( 'post_meta_tags' ) );

    WIe kommt man an die benutzerdefinierte Felder ran, wie kann man diese Abfangen? Dann könnte man prüfen und ändern.

    • Diese Antwort wurde geändert vor 1 Jahr, 8 Monaten von sebiev.
    Thread-Starter sebiev

    (@sebiev)

    Hallo Bego Mario Garde,

    Danke für deine Antwort

    Es soll alles im Backend stattfinden. Die Beiträge sollen im Backend erstellt und der Autor ebenfalls im Backend beim erstellen simple mit angegeben werden. Ich möchte aber nicht jedesmal einen Account dafür erstellen.

    Es sind Beiträge von unterschiedlichsten Autoren die nicht jeder einen Account benötigen.

    • Diese Antwort wurde geändert vor 1 Jahr, 8 Monaten von sebiev.
Ansicht von 12 Antworten - 1 bis 12 (von insgesamt 12)