Wordpress kategorije

Mučim se s funkcijo, ki bi avtomatizirala dodeljevanje kategorije k posemeznim postom.

Želim namreč da bi imeli vsi posti imeli po defaultu neko kategorijo "default"... zadnjih 5 objavljenih postov pa bi bila brez te "default" kategorije. Vedno ko bo objavljen nov post, bo vzel zadnjih 5 in jim odstranil to kategorijo.
Seveda pa mora omogočati tudi ročne spremembe pri vseh, tudi zadnjih petih.

Lahko kdo priskoči na pomoč?

trenutno imam le tole, kar dodeli vsakemu objavljenemu postu kategorijo(kar seveda ni ok):

function add_post_category_automatically($post_ID) {
    global $wpdb;
    if(!has_term('','pravice',$post_ID)){
        $cat = array(417);
        wp_set_object_terms($post_ID, $cat, 'pravice');
    }
}
add_action('publish_mojpost', 'add_post_category_automatically');

2 odgovora

Predpostavljam, da je v mysql bazi za vsak post posebej zapisano, pod katero kategorijo je uvrščen? Če ja, potem bi se lahko hookal v 'new post hook' (pogooglaj, kak točno se mu reče), iz baze potegnil vse poste, in jih kronološko razvrstil. Potem pa najbolj svežim petim pobrisal ven kategorijo, ostalim pa dodelil 'default'. In vse skupaj zapisal nazaj v bazo.

Just a first-minute idea. Lahko, da je totalno butasto, ampak ne vidim, zakaj ne bi delovalo.

Kot je že Street-smarts omenil, poglej ta hook: https://codex.wordpress.org/PluginAPI/ActionReference/publish_post
Iz baze poberi zadnjih 5 postov in jim odstrani "default" kategorijo: https://codex.wordpress.org/FunctionReference/wpremoveobjectterms

Zadeva je sicer po eni strani malo nerodna, ker se bo funkcija izvajala ob vsakem publishu članka, tako, da se bo "shranjevanje" posta za nekaj milisekund podaljšalo.

Lp, R.