Функция «Добавить метапост» не работает

Я использую мета-функцию добавления поста, чтобы сохранить некоторые данные, и она не работает.

<?php
//include '../../../wp-blog-header.php';
$unique = "true";
$pageID = $_GET['postID'];
echo "pageID:";
echo $pageID;

echo "</br>";
$num_posts = $_GET['num_posts'];
echo "num_posts: ";
echo $num_posts;
echo "</br>";
$num_posts_meta_key = "num_posts";
add_post_meta($pageID, $num_posts_meta_key, $num_posts , $unique) or update_post_meta($pageID, "num_posts" , $num_posts);
?>

Кто-нибудь может мне помочь?

На первой странице я получаю все значения из текстовых полей или флажков в javascript, а затем передаю их в URL-адресе на следующую страницу, где есть функция add_post_meta.

Я пробовал использовать метод POST... но тогда он у меня не работает. Он просто отправляет страницу и возвращается, ничего не делая на 1-й странице. Я пробовал методом GET... но ничего не работает.

Поэтому я решил взять все значения, такие как количество сообщений, идентификатор сообщения в javascript, а затем передать его с URL-адресом, используя window.location.

Я очень новичок в кодировании плагинов WordPress. Я думал, что метод POST в моем плагине конфликтует с каким-то другим методом публикации в post.php... хотя не уверен...

Я пишу плагин для панели администратора.


person Snehal Patil    schedule 02.08.2010    source источник
comment
не работает, вы имеете в виду, что он не вставляется или вставляется неправильно?   -  person Ben    schedule 03.08.2010
comment
Он не вставляется... и код, который ниже этого add_post_meta(), не работает... простое эхо тоже не работает... не уверен, чего не хватает?   -  person Snehal Patil    schedule 03.08.2010
comment
простое эхо не работает... что ты имеешь в виду? Вы имеете в виду, что echo $pageID ничего не отображает? похоже, ваша проблема связана с вашим запросом. Как называется ваша страница?   -  person Ben    schedule 04.08.2010
comment
Звучит неясно. Ваши данные должны где-то пропадать. Попробуйте несколько var_dumps в функции add_meta, пользователь Charles HTTP Proxy, чтобы увидеть, что отправлено, и т. д. Извините, я не могу помочь. Я сомневаюсь, что проблема в кодовой базе WordPress. Вы должны сделать что-то не так, прежде чем звонить.   -  person Ben    schedule 05.08.2010
comment
ммм... я попробую поместить некоторый дамп var в функцию add_meta. По крайней мере, вы узнаете, идет ли он внутри этой функции или нет. Что вы подразумеваете под чем-то неправильным в базовом коде ..? означает код wordpress 3.0, который я использую .... Я взял ссылку на некоторый код, чтобы создать код для плагина, а затем надстроить над ним свою функциональность. Это вызовет проблемы?   -  person Snehal Patil    schedule 05.08.2010
comment
Вы здорово помогли :) Я не знаю никого, кто мог бы мне помочь с этим. Большое спасибо за ваши предложения!!   -  person Snehal Patil    schedule 05.08.2010


Ответы (1)


не уверен, в чем ваша проблема .. вы уверены, что передаете правильный параметр postID? сообщение существует в базе данных?

Вам действительно не нужно делать add_post_meta() или update_post_meta.

Из руководства:

Первое, что сделает эта функция, — убедится, что $meta_key уже существует в $post_id. Если это не так, вместо этого вызывается add_post_meta($post_id, $meta_key, $meta_value) и возвращается его результат.

<?php
// This minimum code should work, though you should really check that a post 
// with this id does exist.
update_post_meta($_GET['postID'], "num_posts" , $_GET['num_posts']);
?>
person Ben    schedule 02.08.2010
comment
Я проверил в таблице wp_postmeta, и там действительно существует идентификатор .... Я попробую то, что вы предложили сейчас. - person Snehal Patil; 03.08.2010
comment
этот идентификатор должен существовать в wp_posts - person Ben; 04.08.2010
comment
Сегодня я проверю таблицу wp_post. Я думал о ее отладке... но у Dreamweaver нет инструмента для отладки ;( - person Snehal Patil; 04.08.2010