it-swarm.com.de

wird sich post_id jemals ändern? Kann ich post_id sicher für benutzerdefinierte Abfragen verwenden?

Was sind die Best Practices für die Verwendung von post_id? Kann ich dies sicher in meinen Vorlagen verwenden, um bestimmte Posts aufzurufen, oder werden sich diese post_id jemals ändern?

Der Grund, den ich frage, ist, dass sich die post_id heute zufällig auf meiner Site geändert hat, und ich frage mich, was das verursacht haben könnte. Es hat keinen der Permalinks durcheinander gebracht (Gott sei Dank!), Aber ich musste einige benutzerdefinierte Abfragen wechseln, bei denen der Inhalt speziell von der post_id aufgerufen wurde (speziell in einigen von mir erstellten custom_post_types).

Also ... sollte ich eine andere Abfrage verwenden, um einen bestimmten Beitrag zu erhalten? Die Abfrage, die ich verwende, sieht so aus.

<?php query_posts('post_type=home_feature&p=36')?>

Noch heute war die post_id für diesen Beitrag 139 und meine Suchanfrage lautete:

<?php query_posts('post_type=home_feature&p=139')?>

Als sich die post_id änderte, war meine Abfrage (und anschließend die benutzerdefinierte Home-Funktion) offensichtlich fehlerhaft. Ich bin mir nur nicht sicher, was diese Änderung verursacht haben könnte. Und wenn dies bedeutet, dass ich die post_id nicht in benutzerdefinierten Abfragen verwenden sollte.

1
timshutes

Beitrags-IDs ändern sich nicht. Der Grund dafür ist, dass die ID-Spalte in MYSQL der Primärschlüssel für die Tabelle ist. Es wird automatisch inkrementiert, wenn eine neue Zeile hinzugefügt wird. Es ist unwahrscheinlich, dass sich eine Beitrags-ID programmgesteuert ändert, es sei denn, jemand macht in der Datenbank etwas falsches.

0
Brian Fegter

Warum nicht einfach <?php query_posts( 'p=36' )?> ausführen? Es sollte nicht erforderlich sein, den Beitragstyp anzugeben, da Beitrags-IDs eindeutig sein sollen.

Oder vielleicht könnten Sie den Beitrag nach Titel ausrichten und die ID daraus erhalten:

$page = get_page_by_title('Title of Post','post');
query_posts( 'p=' . $page->ID );
1
Paul

Ich würde Ihnen einen anderen Weg empfehlen, zum Beispiel, anstatt der ID, gehen Sie einfach mit dem Namen der Seite, oder erstellen Sie Metadaten (benutzerdefiniertes Feld) mit einem Häkchen und rufen Sie es auf.

Sie werden sicher sein, dass es in Zukunft kaputt geht!

0
andresmijares