Pages for Cron use Only?

时间:2014-05-28 作者:user12920

因此,我有一组自定义页面模板,这些模板是由cron运行的脚本,用于更新wordpress站点上的各种内容,而不是供常规站点用户查看。

注意:我使用的是“常规”cron作业,而不是“wp cron”作业。

Q: 有没有办法阻止普通joe访问这些页面,但允许cron仍然能够执行页面中包含的脚本?

谢谢

--更新#1--

What do the crons job pages do?

由cron触发的页面上的脚本使用短代码触发一个插件,该插件对各种页面进行爬网(要爬网的URL列表位于一个数组中,该数组被馈送到触发短代码的for循环中),并执行wordpress操作,如创建帖子、类别、标记等。

我正在创建一个非常利基的搜索引擎,它会抓取我告诉它的页面,然后根据结果创建wordpress页面。

$urls = array(\'http://url1.com\', \'http://url2.com\', \'http://url3.com\'); 
## etc.. for each page to be crawled.

## crawl each url in the array

foreach ($url as $crawling) {
    do_shortcode(\'[shortcode]\'); 

}

2 个回复
SO网友:Edd Smith

您可以使用php\\u sapi\\u name()。

查看从开发人员文档中提取的演示

<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == \'cgi\') {
    echo "Your are probably a human";
} else {
    echo "You are probably not a human";
}
?>
您可以在脚本开始时应用这种条件。

SO网友:lotech

您可以按用户角色限制特定页面,即管理员可以访问所有页面,但编辑及以下人员不能访问某些页面。有一个插件可以处理此问题,称为角色作用域:http://wordpress.org/plugins/role-scoper/ 或者,如果您愿意,另一个答案中解释了一个无插件的路线:Hide pages depending on role.

结束

相关推荐

WP-Cron任务已调度但未运行

我在一个特别大的WordPress多站点网络上工作,一直在与WP Cron进行斗争。似乎正在计划WP Cron任务,但未运行。WP Cron任务没有在我们的暂存或生产环境中运行,但在本地运行良好。这些实例都是相同的多站点,具有相同的站点集、相同的主题和激活的相同插件(以及相同版本的插件)。服务器上的PHP版本和我的本地沙盒中的PHP版本略有不同,但WP版本是相同的(略落后于当前的–3.5.2)我尝试过清除队列,并直接点击cron脚本(/wp cron.php?do\\u wp\\u cron),但没有成功