【问题标题】:error in wordpress insert into custom table value empty or nullwordpress 中的错误插入自定义表值空或 null
【发布时间】:2014-11-14 20:36:37
【问题描述】:

我想从 wordpress 帖子中获取所有帖子的标题并插入到自定义表中,但它总是插入空值,为什么

<?php
global $post;
$args = array( 'numberposts' => -1 );
$myposts = get_posts( $args );
foreach ( $myposts as $post ) : 
setup_postdata( $post ); 
insert_p_now(the_permalink());
endforeach;
wp_reset_postdata(); 

function insert_p_now($a)
{
    global $wpdb;
    $wpdb->insert('wp_posttable', array('post_title' => $a), array('%s'));
}
?>

【问题讨论】:

  • 你想在数据库中存储标题或超链接?

标签: php mysql sql wordpress


【解决方案1】:

在您的函数调用中,您没有将帖子标题作为参数传递。

insert_p_now(the_permalink());

这意味着在你的函数中

function insert_p_now($a)
{
    global $wpdb;
    $wpdb->insert('wp_posttable', array('post_title' => $a), array('%s'));
}

$a 的值等于the_permalink(),当然这不是您的 post_title。 如果您只想将帖子标题存储在自定义数组中,也许这就是您要查找的内容:

<?php

global $wpdb;

$args = array( 'numberposts' => -1 );
$allposts = get_posts( $args );

foreach ( $allposts as $curpost ) : 
   $wpdb->insert('wp_posttable', array('post_title' => $curpost->post_title), array('%s')); 
endforeach;

?>

如果您要重复使用“插入自定义表格”功能,当然可以使用单独的函数。

希望有帮助!

【讨论】:

  • 仍然有空白记录实际上我想创建插件...所以我想从 wordpress 复制所有帖子并插入到自定义表中...不知道哪里有错误
  • 当我使用 $wpdb->insert('wp_employee', array('firstname' => 'ss', 'lastname' => 'ss'), array('%s', ' %s'));它可以工作,但是当我放置 $title 时为什么是空的?
  • 嗯,您确定 $title 变量包含帖子的标题吗?如果您使用 get_posts(),则结果中的项目是对象。这些对象的标题存储在 $varname->post_title 中,其中 $varname 当然是你设置的任何值!
  • 是的,当我打印标题时它工作正常..但是当我尝试插入时我得到了 null ...
  • 我明白了。您要插入的数据库字段类型是什么? VARCHAR?
猜你喜欢
  • 2021-01-04
  • 2014-03-09
  • 2017-05-03
  • 1970-01-01
  • 2014-08-18
  • 2012-11-19
  • 2021-06-21
  • 2018-01-13
  • 1970-01-01
相关资源
最近更新 更多