Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Foutieve volgorde berichten bij geüpdate publicatiedatum #21

Open
sanderdekroon opened this issue Nov 14, 2023 · 3 comments
Open

Foutieve volgorde berichten bij geüpdate publicatiedatum #21

sanderdekroon opened this issue Nov 14, 2023 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@sanderdekroon
Copy link
Member

sanderdekroon commented Nov 14, 2023

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:

  1. Heb een bericht waarvan de publicatiedatum in het verleden ligt
  2. Noteer de positie van dit bericht wanneer je alle berichten in een thema opvraagt (zie Aanvullende context voor 'n voorbeeld URL)
  3. Wijzig de publicatiedatum van een bericht naar vandaag
  4. Zie dat de positie van dit bericht niet gewijzigd is, ondanks dat er op datum gesorteerd wordt

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.

@sanderdekroon sanderdekroon added the bug Something isn't working label Nov 14, 2023
@mvdhoek1
Copy link
Contributor

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.

@sanderdekroon
Copy link
Member Author

sanderdekroon commented Dec 4, 2023

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

@mvdhoek1
Copy link
Contributor

mvdhoek1 commented Dec 5, 2023

Of je voegt de sortering hier toe. Op zich vind ik het geen probleem om de connected items altijd te sorteren op datum. En anders kunnen we onderscheid maken dmv een parameter in de url.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants