问题:在数据库中保存几个重复的帖子,然后达到错误嵌套级别‘100’

时间:2015-02-12 作者:Mortzea

我有一个函数可以在数据库中插入一篇文章。

但当我运行该函数时,重复的帖子(40)被添加到数据库中,然后显示一个错误。

致命错误:已达到最大函数嵌套级别“100”,正在中止!在C:\\wamp\\www\\wordpress\\wp includes\\cache中。php在线671

我想这样,每次运行该功能时,只保存一篇文章,没有重复。

function ghoolo_mango(){

    $oiobz1 = writeMsg(1, \'center\', \'\', 1);
    $postdate =date(\'Y-m-d\');
    $ta =date(\'Y-m-d\');
    $postdate_gmt =date(\'Y-m-d H:i:s\');
    $titles=\'زندگی\'.$postdate;
    $posts = array(
        \'post_content\'   => $oiobz1,
        \'post_name\'      => $titles,
        \'post_title\'     => $titles,
        \'post_status\'    => \'publish\',
        \'post_type\'      => \'post\',
        \'post_author\'    => \'1\',
        \'ping_status\'    => \'publish\',
        \'to_ping\'        => \'http://rpc.pingomatic.com/\',
        \'post_date_gmt\'  => $postdate_gmt,
        \'post_date\'  => $postdate,
        \'tags_input\'     => ", قیمت طلا در امروز $ta, قیمت طلا در امروز ,قیمت امروز طلا $ta,قیمت طلا $ta , قیمت امروز طلا $ta, قیمت طلا ماه $ta,لیست امروز قیمت طلا $ta,دانلود لیست قیمت طلا $ta,$ta قیمت طلا به روز,قیمت روز طلا,قیمت ",
    );

    $post_id = wp_insert_post($posts);
    ghoolo_mango();

}
add_action(\'wp\', \'ghoolo_mango\');

1 个回复
最合适的回答,由SO网友:David Gard 整理而成

查看您的代码,您正在调用函数ghoolo_mango() 通过使用wp actoin挂钩。这很好,但请注意,它会添加您的帖子everytime a page loads.

问题是您也在调用该函数ghoolo_mango() 在函数本身内,即它将不断地调用它。

要解决此问题,请拆下线路ghoolo_mango(); 在函数末尾。

您的代码应该如下所示-

function ghoolo_mango(){

    $oiobz1 = writeMsg(1, \'center\', \'\', 1);
    $postdate =date(\'Y-m-d\');
    $ta =date(\'Y-m-d\');
    $postdate_gmt =date(\'Y-m-d H:i:s\');
    $titles=\'زندگی\'.$postdate;
    $args = array(
        \'post_content\'   => $oiobz1,
        \'post_name\'      => $titles,
        \'post_title\'     => $titles,
        \'post_status\'    => \'publish\',
        \'post_type\'      => \'post\',
        \'post_author\'    => \'1\',
        \'ping_status\'    => \'open\',
        \'to_ping\'        => \'http://rpc.pingomatic.com/\',
        \'post_date_gmt\'  => $postdate_gmt,
        \'post_date\'      => $postdate,
        \'tags_input\'     => ", قیمت طلا در امروز $ta, قیمت طلا در امروز ,قیمت امروز طلا $ta,قیمت طلا $ta , قیمت امروز طلا $ta, قیمت طلا ماه $ta,لیست امروز قیمت طلا $ta,دانلود لیست قیمت طلا $ta,$ta قیمت طلا به روز,قیمت روز طلا,قیمت ",
    );
    
    $post_id = wp_insert_post($args);
    
}
add_action(\'wp\', \'ghoolo_mango\');
您现在还询问了如何插入将来的帖子。

为此,您只需将发布日期更改为未来日期,并将发布状态更改为future. 因为你在标题中包含了日期,所以你还需要更新它,但应该像这样简单-

$postdate = new DateTime(date(\'Y-m-d H:i:s\') . \' + 1 day\');
$postdate_gmt = new DateTime(gmdate(\'Y-m-d H:i:s\') . \' + 1 day\');
$titles=\'زندگی\' . $postdate->format(\'Y-m-d\');
$args = array(
    { other args... }
    \'post_status\' => \'future\',
    { other args... }
);
在上面的示例中,我使用了1 day, 但您可以根据需要进行更改。

结束

相关推荐

在ARRAY()中添加布尔值的正确语法

条件php问题。。。我有一个数组,需要添加一个OR布尔值来检查其他类别4。不知道用于添加更多类别id的语法。我已经尝试了数组(\'cat\'=>-9,-4),但它只识别第一个id。query_posts( array_merge( $wp_query->query, array(\'cat\' => -9, \'ignore_sticky_posts\'