Ich vermute Du nutzt „pretty permalinks“, also die schön aussehenden SEO-URLs? Deren Cache müsste in dem Zusammenhang mit geleert werden.
Versuch mal folgendes:
Wenn Du einen neuen Betrag übermittelt hast, geh im Backend auf Einstellungen > Permalinks und speichere diese einfach neu ohne eine Einstellung zu ändern. Ist der Beitrag danach erreichbar?
Wenn ja, dann liegt es genau an der fehlenden Permalink-Cache-Aktualisierung. Wieso das beim Neueintrag per API nicht passiert, müsste dann genauer untersucht werden.
-
Diese Antwort wurde geändert vor 1 Jahr, 8 Monaten von threadi.
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.
Steht unter Werkzeuge > Website-Zustand irgendeine Meldung die auf fehlende Ausführung von Cronjobs hinweist?
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)
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>";
}
schlimm? Habs gelöscht.
Schlimm nicht, aber wenn du das machst, dann weise bitte darauf hin. Es ist immer sehr frustrierend, wenn jemand helfen möchte, sich Zeit nimmt und eine Lösung (oder den Weg dahin) erarbeitet und dann als Antwort kommt: Habe schon bei XY eine Antwort bekommen. Wenn du den Link selbst postest, dann kann dort geprüft werden, ob schon eine Lösung existiert. Dann verschwendet niemand seine Zeit.
Zum Thema: Es wäre hilfreich, wenn du mal deine aktiven Plugins posten würdest, damit wir schauen können, ob es vielleicht andere Problemquellen geben könnte.
Auch wäre ein vollständiger Code ggf. hilfreich.
Gruß, Torsten
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, 8 Monaten von sebiev.
-
Diese Antwort wurde geändert vor 1 Jahr, 8 Monaten von Bego Mario Garde.
Poste mal den Code mit dem du deinen custom post type registrierst
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!
… und liebe Mitleser/-innen, bitte immer daran denken: die Datei heißt functions.php
(Plural, mit „s“), sonst wird sie nicht erkannt. 😉
Thread-Starter
sebiev
(@sebiev)
Danke Bego, werde ich mir merken, und entschuldige wegen der gestrigen Mehrarbeit deinerseits! Hab es mir auf die Fahne geschrieben.
Alles gut, hab’s nur erwähnt, weil es ein wirklich lästiger Fehler ist, den Dateinamen falsch zu schreiben. Da suchst du stundenlang, bevor dir der kleine Tippfehler auffällt.
Bei der Moderation des Forums bringen wir immer viel Humor mit (ohne geht’s nicht). Der Humor bleibt aber oft auf der Strecke, weil selbst harmlose Scherze schnell missverstanden werden. Wer soweiso schon Stress mit seiner Website hat, missversteht lustig gemeinte Kommentare schon mal eher. Wie auch immer – der kleine Hinweis war mir Augenzwinkern gemeint. Zwinkersmiley.