Open sanderdekroon opened 10 months ago
Ik heb even gekeken, in de code van de plug-in doen wij nu dit:
/**
* Get connected items of a post, for a specific connection type.
*/
protected function getConnectedItems(int $postID, string $type): array
{
$connection = \p2p_type($type);
if (! $connection) {
return [
'error' => sprintf(__('Connection type "%s" does not exist', 'openpub-base'), $type)
];
}
return array_map(function (WP_Post $post) {
return [
'id' => $post->ID,
'title' => $post->post_title,
'slug' => $post->post_name,
'excerpt' => $post->post_excerpt,
'date' => $post->post_date
];
}, $connection->get_connected($postID)->posts);
}
In bovenstaande wordt helemaal geen 'order' gebruikt. Lokaal heb ik het proberen te testen middels het toevoegen van de p2p query variabelen:
add_action('p2p_init', function(){
$postID = 9871;
$type = 'openpub-item_to_openpub-theme';
$connection = \p2p_type($type);
var_dump($connection->get_connected($postID, ['connected_orderby' => 'date', 'connected_order' => 'asc'])->posts); die;
});
Helaas lijkt het erop alsof deze variabelen niet meegenomen worden in de query. In dit voorbeeld las ik wel dat het misschien alleen werkt voor meta velden. Wellicht heb je hier wat aan.
Ja klopt, dat was mij ook al opgevallen =/
Maar is het een (te verwachten) functionaliteit dat nieuwsberichten standaard op publicatiedatum zijn gesorteerd én dat het mogelijk is om nieuwsberichten in een bepaald thema uit te lezen?
Als het antwoord ja is, moeten we opzoek gaan naar een oplossing in deze plugin. Ik zou dan willen voorstellen om een extra endpoint toe te voegen om (actieve) openpub-items uit te lezen in een gegeven thema. Dus zonder de p2p query arguments in de URL. Iets in de zin van: https://website.loc/wp-json/owc/openpub/v1/theme-items/active/naam-van-thema/?limit=7
.
Als dat geen functionaliteit in deze plugin, los ik het op aan de consumer kant
Beschrijf de bug Als ik de publicatiedatum van een Openpub Item verzet, dan zie je dit niet terug in de sortering van de berichten wanneer je de berichten in een thema opvraagt.
Te reproduceren Stappen om het gedrag te reproduceren:
Aanvullende context Het gaat om zo'n soort API verzoek: https://website.loc/wp-json/owc/openpub/v1/items/active?limit=7&connected_type=openpub-item_to_openpub-theme&connected_items=13745&orderby=date
In dit geval hebben wij een thema 'Nieuws' die de berichten op de homepagina toont, gesorteerd op de publicatiedatum. Af en toe 'herpubliceren' we seizoensgebonden berichten (denk bijv. aan berichtgeving omtrent carbid schieten). We passen dan de publicatiedatum aan van een oud bericht naar vandaag. We zien dan alleen het bericht niet verschijnen op de homepagina; de berichten volgorde wordt niet geüpdatet in de API response.
Dit gebeurt alleen wanneer je berichte opvraagt binnen een bepaald thema.