私はワードプレスのテーマを持っていて、テーマのバックエンドに追加のフィールドを追加しようとしています (説明とキャプションのテキスト ボックスがあるギャラリー スライダー用で、「引用」ボックスを追加しようとしています)。
私はデータベースの初心者なので、関連するファイルを見つけて、「説明」へのすべての参照をコピーし、単語を「引用」に変更しました。また、テーブルに「引用」列を追加しました。
すべて正常に動作しているように見えますが、バックエンドの入力フィールドにテキストを入力して [保存] をクリックすると、テキストが「0」に変更されます
これがなぜなのか、私が間違ったことをした人はいますか?
これはDBに投稿するコードだと思います....私が言うように、私はDBの初心者ですが
add_action('wp_ajax_list_slider_items', 'list_slider_items');
function list_slider_items()
{
global $wpdb;
$result = $wpdb->get_results("SELECT IMAGEID, TYPE, CONTENT, THUMB, CAPTION, DESCRIPTION, QUOTE, WIDTH, HEIGHT FROM {$wpdb->prefix}backgrounds WHERE GALLERYID='".$_POST['GALLERYID']."' ORDER BY SLIDERORDER");
$i=0;
foreach($result as $row)
{
echo getSliderItemImage($row->IMAGEID, $row->TYPE, $row->CONTENT, stripslashes($row->CAPTION), stripslashes($row->DESCRIPTION), stripslashes($row->QUOTE), $row->THUMB, $row->WIDTH, $row->HEIGHT);
$i++;
}
die();
}
add_action('wp_ajax_save_slider_items', 'save_slider_items');
function save_slider_items()
{
global $wpdb;
for($i=0; $i<count($_POST['imageID']); $i++)
{
$wpdb->update($wpdb->prefix.'backgrounds', array('CAPTION'=>$_POST['CAPTION'][$i], 'DESCRIPTION'=>$_POST['DESCRIPTION'][$i], 'QUOTE'=>$_POST['QUOTE'][$i], 'SLIDERORDER'=>($i+1)), array('IMAGEID'=>$_POST['imageID'][$i]), array('%s', '%s', '%d'), array('%d'));
}
die();
}
そして、これはテーブルを作成したコードのように見えます:
function create_backgrounds_table(){
global $wpdb;
$prf = $wpdb->prefix;
$create_query = <<<EOT
CREATE TABLE `{$prf}backgrounds` (
`IMAGEID` int(11) NOT NULL auto_increment,
`GALLERYID` bigint(20) unsigned NOT NULL,
`SLIDERORDER` int(11) unsigned NOT NULL,
`EXT` varchar(255) NOT NULL,
`CAPTION` text,
`DESCRIPTION` mediumtext NOT NULL,
`QUOTE` mediumtext NOT NULL,
`TYPE` varchar(20) default NULL,
`CONTENT` text,
`THUMB` text,
`WIDTH` int(11) default NULL,
`HEIGHT` int(11) NOT NULL,
PRIMARY KEY (`IMAGEID`),
KEY `GALLERYID` (`GALLERYID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
EOT;
$create = $wpdb->get_results($create_query);
}