2013-05-07 1 views
0

Если мне нужно управлять настраиваемым полем под Wordpress, но не из области администрирования. Другими словами, мне нужно, чтобы пользователи изменяли содержимое почтовых пользовательских полей с внешнего интерфейса. Каков способ сделать это?Изменение настраиваемого поля с лицевой стороны

В качестве примеров, пожалуйста, представляйте Stackoverflow.com как сайт Wordpress. Под этим сайтом количество upvotes/downvotes и состояние accept - это мои 2 пользовательские поля. Как я могу сделать пользовательский интерфейс изменить свои значения в базе данных WP?

Пожалуйста, если у вас есть другой лучший подход для создания системы голосования и принятия системы, используя wordpress, он будет высоко оценен. Но если мой подход (с использованием настраиваемого поля) является okey, пожалуйста, направляйте меня на поиск документации из сети или кода для достижения моей цели.

Благодарим вас за помощь.

+0

ответ ответ? дайте мне знать, если что-то еще нужно будет уточнить. – acsmith

+0

@acsmith Я благодарю вас за ваши отзывы по этому вопросу. Конечно, ваш ответ помогает мне, и, кроме того, он заставляет меня узнать о многих новых понятиях для меня. Теперь я читаю о большом количестве предоставленной вами информации (от codex и tutplus), также я пытаюсь найти решение для управления пользователями с помощью BuddyPress. Ну, некоторые работы нужно сделать, и когда все решение будет реализовано, я буду здесь, чтобы согласиться. Я уже +1, и я буду публиковать дополнительные вопросы в качестве комментариев здесь, конечно. Большое спасибо. –

ответ

1

Я бы предложил думать о паре вещей:

  1. Каждый пост должен показать сумму вверх голосов и вниз голосов
  2. Каждый пользователь должен только быть в состоянии вверх или вниз голосования один раз (то есть один пользователь не может голосовать тот же пост в сто раз)

вы думаете, что вы хотите создать функцию для вашей темы, которая позволила пользователям при входе в изменить метаданные поста. Однако, это не совсем так - вам нужно разрешить пользователям редактировать элемент своих собственных метаданных (см. add_user_meta), который в основном представляет собой только хэш. Метаданные могут быть как array("post-666-vote" => -1, "post-777-vote" => 1) для downvote почтово 666 и upvote столба 777.

Таким образом, при загрузке каждого сообщения, ваш голос-Талли-визуализатор будет выглядеть примерно так:

vote = get_post_meta($user_id, "post-" . $post_id . "-vote", true); 
if(vote == -1) { 
    // Render down-arrow voting 
} elsif(vote == 1) { 
    // Render up-arrow voting 
} else { 
    // Render normal arrows 
} 

Каждая стрелка вероятно, придется сделать запрос AJAX для обновления метаданных сообщения. Это длинный учебник (но это не слишком сложно! Я обещаю!) И примерно 3/4 пути вниз говорит о том, как использовать запрос AJAX для изменения некоторых метаданных пользователя. http://wp.tutsplus.com/tutorials/plugins/a-primer-on-ajax-in-the-wordpress-frontend-actually-doing-it/

Единственное реальное существенное изменение заключается в том, что функция PHP, вызванная запросом WP AJAX, также нуждается в функции обратного вызова для обновления метаданных сообщения и изменения количества голосов в самой записи. Таким образом, когда страница будет перезагружена, она отобразит правильное количество голосов.

+0

Я не понимал ваш ответ в первый раз, и после исследований и учебы я считаю это очень полезным. Я нашел ответы в другом месте, задав этот вопрос в другой раз. Я потратил много времени, чтобы понять их, а затем, когда я вернусь сюда, я обнаружил, что, когда я собираю все ответы, результатом является ваш ответ, первый. Еще раз спасибо –

+1

Хех, спасибо. Хорошо, чтобы получить это сообщение, и рад, что это помогло! – acsmith