आपके द्वारा स्थिरांक को जोड़ने के बाद wp-config.php
defined('DISABLE_WP_CRON') or define('DISABLE_WP_CRON', true);
और यह मानते हुए कि आपके पास अपना config.yml
सेटअप सही है, आप --path
कॉल करते समय झंडे को हटा सकते हैं cron run
।
wp cron event run --due-now
[<hook>…]
एक या अधिक हुक चलाने के लिए।
[--due-now]
अभी सभी हुक चलाएं।
[--all]
सभी हुक चलाएं।
करने के लिए पूरे क्रॉन कार्य चलाने के क्रम में:
function run_crons_due_now_in_order { for SITE_URL in $(wp site list --fields=url --format=csv | tail -n +2 | sort); do wp cron event run --due-now --url="$SITE_URL" && echo -e "\t+ Finished crons for $SITE_URL"; done; echo "Done"; }; run_crons_due_now_in_order;
यदि आप उन्हें समवर्ती रूप से चलाना चाहते हैं (पहले गैर-साइट-विशिष्ट क्रोन चलाना):
function run_all_crons_due_now { for SITE_URL in $(wp site list --fields=url --format=csv | tail -n +2 | sort); do wp cron event run --due-now --url="$SITE_URL" && echo -e "\t+ Finished crons for $SITE_URL" & done; wait $(jobs -p); echo "Done"; }; run_all_crons_due_now;
आप निष्पादन योग्य फ़ाइल में या तो विकल्प रखना चाहते हैं
chmod +x run_all_wp_cron_events_due_now.sh
एक crontab कार्य जोड़ें
crontab -e
और शायद प्रत्येक मिनट पर अमल करें
* * * * * run_all_wp_cron_events_due_now.sh > /dev/null
यदि आप क्रोन से एक कस्टम कमांड चलाना चाहते हैं , तो आपको काम करने के लिए wp-cli के लिए पूर्ण पथ निर्दिष्ट करने की आवश्यकता हो सकती है ।
* * * * * cd /home/username/public_html; /usr/local/bin/php /home/username/wp-cli.phar your-custom-cron-commands run >/dev/null 2>&1
पीएचपी
एकमात्र कारण आपको यहां वर्डप्रेस को लोड करने की आवश्यकता होगी, पूर्व-परिभाषित सूची का उपयोग करने के बजाय डेटाबेस से URL को इकट्ठा करना है। हम केवल उन URL को पिंग करने जा रहे हैं और हमें वास्तव में परवाह नहीं है कि प्रतिक्रिया क्या है।
custom-cron.php
<?php
// Load WP
require_once( dirname( __FILE__ ) . '/wp-load.php' );
// Check Version
global $wp_version;
$gt_4_6 = version_compare( $wp_version, '4.6.0', '>=' );
// Get Blogs
$args = array( 'archived' => 0, 'deleted' => 0, 'public' => 1 );
$blogs = $gt_4_6 ? get_sites( $args ) : @wp_get_sites( $args ); // >= 4.6
// Run Cron on each blog
echo "Running Crons: " . PHP_EOL;
$agent = 'WordPress/' . $wp_version . '; ' . home_url();
$time = time();
foreach ( $blogs as $blog ) {
$domain = $gt_4_6 ? $blog->domain : $blog['domain'];
$path = $gt_4_6 ? $blog->path : $blog['path'];
$command = "http://" . $domain . ( $path ? $path : '/' ) . 'wp-cron.php?doing_wp_cron=' . $time . '&ver=' . $wp_version;
$ch = curl_init( $command );
$rc = curl_setopt( $ch, CURLOPT_RETURNTRANSFER, false );
$rc = curl_exec( $ch );
curl_close( $ch );
print_r( $rc );
print_r( "\t✔ " . $command . PHP_EOL );
}
और custom-cron.php
एक कॉन्टैब में अपने लिए एक ही कॉल जोड़ें
* * * * * wget -q -O - http://your-site.com/custom-cron.php?doing_wp_cron
WP-CLI
कोर कोड पर एक नज़र डाली है?