我编写以下代码来将post保存在wordoress wp\\U post数据库表中。
但不保存在数据库中
function writeMsg(){
global $wpdb;
$result = $wpdb->get_results ( "SELECT * FROM wp_farsc" );
$data = null;
$data.= \'<table border="2px" cellspacing="5px" width="100%">\'.PHP_EOL;
$data.= \'<tr bgcolor="yellow"><th>سکه</th><th>قیمت انلاین</th><th>تغییر قیمت</th><th>کمترین</th><th>بیشترین</th><th>زمان بروز رسانی</th></tr>\'.PHP_EOL;
foreach ( $result as $row ) {
$data .=\'<tr>\';
$data .= \'<td>\'.$row-> titile.\'</td>\';
$data .=\'<td>\'.$row -> liveprice.\'</td>\';
$data .=\'<td>\'.$row -> changing.\'</td>\';
$data .= \'<td>\'.$row-> lowest.\'</td>\';
$data .= \'<td>\'.$row-> topest.\'</td>\';
$data .= \'<td>\'.$row-> time.\'</td>\';
$data .=\'</tr>\'.PHP_EOL;
}
return $data;
}
$oiobz1 = writeMsg(1, \'center\', \'\', 1);
function importposts() {
$postdate = date(\'2014-06-19 00:30:00\');
$postdate_gmt = date(\'2014-06-19 04:30:00\');
$titles=\' 111111111111111111111111111\';
$posts = array(
\'post_content\' => $oiobz1,
\'post_name\' => $titles,
\'post_title\' => $titles,
\'post_type\' => \'post\',
\'post_author\' => \'1\',
\'ping_status\' => \'publish\',
\'to_ping\' => \'http://rpc.pingomatic.com/\',
\'post_date_gmt\' => $postdate_gmt,
\'post_date\' => $postdate,
);
$post_id = wp_insert_post($posts);
add_post_meta($post_id, \'META-KEY-1\', \'META_VALUE-1\', true);
}
?>
最合适的回答,由SO网友:Privateer 整理而成
正如Milo所指出的,您需要调用importposts函数来让它做任何事情。
此外,如果您的帖子没有插入,post\\u id应该保存一个wp\\u error对象,这样您就可以在add\\u post\\u meta之前执行以下操作来查看错误
if ( is_wp_error( $post_id ) ) {
echo "<p>Bad Post Attempt:</p><pre>" . print_r($post_id, true) . "</pre>";
}
如果调用函数并有查询,则应该指出查询中的任何问题。
正在调用函数。。。(以防万一)
创建函数后,需要调用它:
importposts();
就我个人而言,我会给它一个更明确的名字。。。您可能需要通过wordpress加载后的某个时间发生的操作来包装调用
function do_my_import_posts_now() {
importposts();
}
add_action(\'wp\', \'do_my_import_posts_now\');
这将确保在调用函数之前设置wordpress。