WordPress通过URL以编程方式插入帖子

时间:2011-06-20 作者:hiprakhar

我必须在Wordpress中按程序插入帖子。我希望我应该能够通过url发布帖子。比如www.mypage。com/insertnewpost。php?标题=废话(&A);内容=blahblahblah&;类别=1,2,3

以下代码只有在函数内部使用时才起作用。主题的php文件。

include \'../../../wp-includes/post.php\';
global $user_ID;
$new_post = array(
\'post_title\' => \'My New Post\',
\'post_content\' => \'Lorem ipsum dolor sit amet...\',
\'post_status\' => \'publish\',
\'post_date\' => date(\'Y-m-d H:i:s\'),
\'post_author\' => $user_ID,
\'post_type\' => \'post\',
\'post_category\' => array(0)
);
$post_id = wp_insert_post($new_post);
然而,当我尝试创建像insertnewposts这样的新页面时。php并使用上面的代码,我会遇到一些错误,如致命错误:调用Z:\\www\\wordpress\\wp includes\\post中未定义的函数add\\u action()。php在线144

请帮忙。

3 个回复
最合适的回答,由SO网友:hiprakhar 整理而成

我终于找到了问题的答案。

要使此代码正常工作,请执行以下操作:

global $user_ID;
$new_post = array(
\'post_title\' => \'My New Post\',
\'post_content\' => \'Lorem ipsum dolor sit amet...\',
\'post_status\' => \'publish\',
\'post_date\' => date(\'Y-m-d H:i:s\'),
\'post_author\' => $user_ID,
\'post_type\' => \'post\',
\'post_category\' => array(0)
);
$post_id = wp_insert_post($new_post);
我们需要确保wordpress的引导程序已经启动。。。Wordpress引导程序确保所有Wordpress配置都已加载到内存中。这包括所有核心功能等。

回到“以编程方式插入帖子”的原始问题,我们需要在启动wp引导程序后在适当的位置调用wp\\u insert\\u post()。

为此,创建一个新的php文件,如www.yourdomain。com/wpinstalldir/autoposts。php

<?php
/**
 * Writes new posts into wordpress programatically
 *
 * @package WordPress
 */

/** Make sure that the WordPress bootstrap has run before continuing. */
require(dirname(__FILE__) . \'/wp-load.php\');

global $user_ID;
$new_post = array(
\'post_title\' => \'My New Post\',
\'post_content\' => \'Lorem ipsum dolor sit amet...\',
\'post_status\' => \'publish\',
\'post_date\' => date(\'Y-m-d H:i:s\'),
\'post_author\' => $user_ID,
\'post_type\' => \'post\',
\'post_category\' => array(0)
);
$post_id = wp_insert_post($new_post);
?>
现在,您将在www.yourdomain上执行此脚本。com/wpinstalldir/autoposts。php将创建您的帖子。简单明了!

只是添加一行require(dirname(__FILE__) . \'/wp-load.php\'); 让一切变得不同。

SO网友:Rakesh Sankar

希望这个链接上的答案是有用的。

https://stackoverflow.com/questions/3947979/fatal-error-call-to-undefined-function-add-action/3952058#3952058

确保您的Z:\\www\\wordpress\\wp-includes\\post.php

SO网友:user49648

只是添加一行require(dirname(__FILE__) . \'/wp-load.php\'); 让一切变得不同。

因此,当您想在WordPress上写编程帖子时,请执行以下操作:

error_reporting(E_ALL);
ini_set("display_errors", 1);
set_time_limit(0);
require(dirname(__FILE__) . \'/wp-load.php\'); 

// Create post object
$my_post = array(
  \'post_title\'    => wp_strip_all_tags( \'test\' ),
  \'post_content\'  => \'hi boy\',
  \'post_status\'   => \'publish\',
  \'post_author\'   => 1
);

$post_id = wp_insert_post( $my_post, $wp_error );

if ($wp_error==false)
 echo $post_id ;
else
  echo \'Not set\';
echo \'Ended\';

结束