it-swarm.com.de

Festlegen des Zeitplans für Haftnotizen (Automatisch)

BEARBEITEN: Es funktioniert derzeit, wenn ich einen klebrigen Beitrag setze und das Datum auf 07.07.2016 festlege. Bisheriger Code: Ich habe diesen Code hinzugefügt, um das Post-Datum des Posts zu ändern, wenn er klebrig wird:

//        Update post timestamp
$newdate = current_time('mysql');
        $my_post = array(
            'ID' => $post_id,
            'post_date' => $newdate
        );
        wp_update_post($my_post);
//        Update post timestamp

Und auch dies, um den Beitrag zu entfernen, wenn er klebrig ist und älter als 7 Tage:

function deleteOldStickies($post_id, $postDate) {
    $postDate = strtotime($postDate);
    $currentTime = strtotime(time());
    $expire = $currentTime + strtotime('-1 day');
    if ($postDate < $expire && is_sticky()) {
        unstick_post($post_id);
        echo 'Обявата е изтекла!';
    }
}

In content.php rufe ich die Funktion auf als:

<?php echo deleteOldStickies($post->ID, $post->post_date); ?>

Meine weitere Frage aus den obigen Informationen lautet: Fehlt mir etwas Wichtiges, wird es in der Live-Umgebung gut funktionieren?

5
knif3r

OK, ich habe es funktioniert. Dies ist der Code, den ich verwendet habe. Ich bin nicht sicher, ob es die beste Vorgehensweise ist, aber es funktioniert auf jeden Fall.

In functions.php, wo ich die Posts vom Frontend aus klebrig mache, habe ich dies hinzugefügt, um das post_date auf den heutigen Stand zu bringen, damit ich die Kontrolle über die Klebezeit haben kann:

$newdate = current_time('mysql');
$my_post = array(
    'ID' => $post_id,
    'post_date' => $newdate
);
wp_update_post($my_post);

In functions.php (Ich habe -1 Tag zum Testen verwendet. Wenn Sie -7 Tage in die Variable $ expire eingeben, werden die Haftnotizen, die älter als 7 Tage sind, entfernt.

//Delete Old Stickies START
function deleteOldStickies($post_id, $postDate) {
    $postDate = strtotime($postDate);
    $expire = strtotime('-1 day') + get_option( 'gmt_offset' ) * 3600;
    if ($postDate < $expire && is_sticky()) {
        unstick_post($post_id);
    }
}

//Delete Old Stickies END

In der Schleife :

<?php echo deleteOldStickies($post->ID, $post->post_date); ?>
3
knif3r