Wordpress kategorije
 
tkonko 18. sep 2015 08:24:36 Pridružen od:
3. apr 2013
48 objav
21 1 0
#1

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');
všeč(0) ni všeč(0) spam(0)
 
Street-smarts 18. sep 2015 11:54:30 Pridružen od:
30. avg 2011
618 objav
510 23 1
#2

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.


všeč(0) ni všeč(0) spam(0)
 
mausek 22. sep 2015 07:13:26 Pridružen od:
11. maj 2011
3 objav
0 0 0
#3

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.


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se