U WP-u trebam svaki tjedan prikazati jedan shortcode, šest različiti za svaki tjedan. Nakon šestog tjedna se opet prikazuje prvi i tako u krug.
Primjer [code id=1].
Ima tko ideju kako to riješiti da se automatski mijenja?
Ideju za neku petlju ili nesto slično
Trenutni ručno mijenjam u editoru, prihvatljivo je i ako bude hardcoded u templateu.
aee
4
Prikazuje se samo na jednoj stranici ili više stranica?
Samo na jednoj stranici, shortcode generira ssdržaj.
aee
6
Ok, imam malo vremena pa ti dam primjer za jedno 10 min
aee
7
<?php
// u WP nemaš weekly schedule opciju pa je treba dodati
add_filter( 'cron_schedules', function( $schedules ) {
$schedules['weekly'] = [
'interval' => 604800,
'display' => __('Weekly')
];
return $schedules;
});
if ( ! wp_next_scheduled( 'change_shortcode_action' ) ) {
wp_schedule_event( time(), 'weekly', 'change_shortcode_action' );
}
add_action('change_shortcode_action', 'change_shortcode_every_week');
function change_shortcode_every_week() {
$id = 5; // post id koji ti treba
$shortcodes = [
'[week-1]',
'[week-2]',
'[week-3]',
'[week-4]',
'[week-5]',
'[week-6]',
];
$post = get_post( $id );
foreach( $shortcodes as $shortcode ) {
// provjeri koji se shortcode koristi
if ( strstr( $post->post_content, $shortcode ) ) {
$next = next( $shortcodes );
if ( ! $next ) {
reset( $shortcodes );
$next = current( $shortcodes );
}
$content = str_replace( $shortcode, $next, $post->post_content );
$data = [
'ID' => $id,
'post_content' => $content,
];
wp_update_post( $data );
}
}
}
Nisam probao, valjda će raditi
1 Like