Şuan sitemde "Draft to Publish Eklentisi" kullanıyorum. Bu eklenti sitede bulunan taslak yazıları belli aralıklarla yayınlıyor.
Eklentide en düşük 5 dk var. Ben bunu daha da düşürmek istiyorum ne yapabilirim. Nasıl yardımcı olursunuz.
Eklentiyi http://www.yakupgovler.com/draft-to-publish-eklentisi-ucretsiz.html sitesiden bulup kurdum. Ustama teşekür ediyorum. Ona soracaktım ama soramadım. Eklentinin php dosyasını buraya kopyalıyorum. Yardımcı olursanız sevinirim.
Güncelleme:
Arkadaşlar aşagıdaki kodlarda
geçen
if (!($delay==999 || $delay >= 5 && $delay <= 300)) $error=true;
Kısmını
if (!($delay==999 || $delay >= 1 && $delay <= 10)) $error=true;
Yaptım şuan 5 dk da bir değil de dakikada bir yazı paylaşıyor. Fakat neden dakikada bir tane. Ben orada 1 için karşılık olarak 10 saniye verdim. 10 saniyede bir yapmıyor.
Bi fikri olan var mı ?
/*
Plugin Name: Draft to Post
Plugin URI: http://www.yakupgovler.com
Description: Taslak yazılarınızı belirli aralıklarla yayımlar.
Author: Yakup Gövler
Version: 1.0
Author URI: http://www.yakupgovler.com
*/
function yg_d2p_options_page() {
add_options_page('Draft to Publish Settings', 'Draft to Publish', 10, __FILE__, 'yg_d2p_options');
}
add_action('admin_menu', 'yg_d2p_options_page');
function yg_is_d2p_activated () {
$crons = _get_cron_array();
if ( !empty($crons) ) {
foreach ( $crons as $timestamp => $cron ) {
if (isset($cron['yg_publish'])) {
return true;
}
}
}
return false;
}
function yg_d2p_save_settings() {
if ($_POST['submit']) {
$activate = (bool) ($_POST['activate']);
$pt = esc_attr($_POST['post_type']);
$error = false;
if (!($pt=='draft' || $pt=='pending')) $error = true;
$delay = (int) $_POST['delay'];
if (!($delay==999 || $delay >= 5 && $delay <= 300)) $error=true;
$cats = str_replace(' ', '', esc_attr($_POST['cats']));
$order = esc_attr($_POST['order']);
if (!($order == 'ASC' || $order == 'DESC' || $order == 'RAND')) $error=true;
if (!$error) {
$options = array('activate'=>$activate, 'delay'=>$delay, 'post_type'=>$pt, 'cats'=>$cats, 'order'=>$order);
if (!update_option('yg_d2p_options', $options)) add_option('yg_d2p_options', $options);
if ($delay == 999) $delay = mt_rand(60, 180);
wp_clear_scheduled_hook('yg_publish');
if ($activate) wp_schedule_single_event(time() + $delay*60, 'yg_publish', array());
?>
Ayarlar kaydedildi.
}
}
}
function yg_d2p_options() {
if ($_POST['submit']) {
check_admin_referer( 'd2p_options' );
yg_d2p_save_settings();
}
$options = get_option('yg_d2p_options');
$activate = (bool) $options['activate'];
$delay = (int) $options['delay'];
$post_type = esc_attr($options['post_type']);
$cats = esc_attr($options['cats']);
$order = esc_attr($options['order']);
$delays = array(5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 180, 240, 300);
?>
Draft to Publish Settings
}
function yg_draft_to_publish($postt='') {
global $wpdb;
$options = get_option('yg_d2p_options');
$activate = (bool) $options['activate'];
$delay = (int) $options['delay'];
if ($delay == 999) $delay = mt_rand(60, 180);
$post_type = esc_attr($options['post_type']);
if ($post_type != 'pending') $post_type = 'draft';
$cats = esc_attr($options['cats']);
$order = esc_attr($options['order']);
if ($order == 'RAND') {$orderby = 'rand'; $order='';}else{ $orderby = 'ID';}
if ($order != '' && $order != 'DESC') $order = 'ASC';
$args = array(
'category' => $cats,
'post_type' => 'post',
'post_status' => $post_type,
'numberposts' => 1,
'orderby' =>$orderby,
'order' => $order
);
$post = get_posts($args);
if ($post) {
//$post = $wpdb->get_results("select * FROM $wpdb->posts WHERE post_status='draft' AND post_type='post' ORDER BY ID ASC LIMIT 1");
$post_id = $post[0]->ID;
$postarr = array('ID' => $post_id, 'post_status' => 'publish', 'post_date' => current_time('mysql'), 'post_date_gmt' => current_time('mysql', 1));
wp_update_post($postarr);
wp_schedule_single_event(time() + $delay * 60, 'yg_publish', array());
} /*else{
add_action('admin_notices', 'yg_d2p_notice');
}*/
}
/*
function yg_d2p_notice() {
echo '';
echo 'Uyarı:: Yayımlanacak yazı bulunamadığından, Draft to Publish eklentisi
tarafından yazıların yayımlanması durduruldu.';
echo '
';
}
*/
add_action('yg_publish', 'yg_draft_to_publish', 10, 1);
register_activation_hook(__FILE__,'yg_draft2publish_install');
register_deactivation_hook(__FILE__,'yg_draft2publish_uninstall');
// Install plugin
function yg_draft2publish_install() {
$options = array('activate'=>0, 'delay'=>30, 'post_type'=>'draft', 'cats'=>'', 'order'=>'ASC');
add_option('yg_d2p_options', $options);
}
// Uninstall plugin
function yg_draft2publish_uninstall() {
wp_clear_scheduled_hook('yg_publish');
}
?>