Как отфильтровать комментарии в Wordpress по значению meta_value, хранящемуся в wp_commentdata? - PullRequest
0 голосов
/ 07 ноября 2011

Мне удалось ввести в базу данных Wordpress, в таблицу wp_commentmeta, через настраиваемое поле в форме комментария, эти данные:

meta_id | comment_id | meta_key       | meta_value
--------------------------------------------------
9       | 6          | commentoptions | option1
10      | 7          | commentoptions | option2

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

Сначала я подумал: «Мне повезло, мне просто нужно создать два элемента div, расположить их с помощью CSS и отфильтровать комментарии с помощью функции wp_list_comments», но функция wp_list_comments не может этого сделать. *

Может ли кто-нибудь подсказать мне, как мне поступить? Заранее спасибо!

1 Ответ

0 голосов
/ 07 ноября 2011

РЕДАКТИРОВАТЬ: уже немного поздно ... и я только что понял, что мой первоначальный ответ относится только к публикации метаданных. Я оставлю свой оригинальный ответ ниже, так как он может быть полезен для захвата мета-полей для поста. Вверху вы найдете метод для получения комментария метаполя.

Предполагая, что эти мета-значения попадают в базу данных через WordPress API, приведенный ниже код поможет вам получить мета-значения для конкретного комментария post .

Исправленный ответ:

<?php 
$comment_id = 123;
$key = "commentoptions"; // change to whatever key you are using
$single = true; // whether or not you want just one or multiple values returned associated with the same key, see comments below about use

$meta_values = get_comment_meta($comment_id, $key, $single); 
?>

Оригинальный ответ (применяется для получения post meta fields)

<?php 
$post_id = 123;
$key = "commentoptions"; // change to whatever key you are using
$single = true; // whether or not you want just one or multiple values returned associated with the same key, see comments below about use

$meta_values = get_post_meta($post_id, $key, $single); 
?>

В качестве альтернативы вы можете использовать get_post_custom_values ​​(), как показано ниже, что является более хорошим способом сделать это, если у вас есть несколько значений, ожидаемых для каждого ключа. Приведенный выше код будет делать то же самое, если вы используете $ single = false, но это не является предпочтительным из-за того, как работает функция get_post_meta () - если возвращается только одно значение, оно выдает фактическое строковое значение, иначе возвращает массив значений. Приведенный ниже метод вернет массив, если у вас есть одно или несколько значений для ключа, поэтому он приводит к более чистому, более интуитивному коду.

<?php
$post_id = 123;
$key = "commentoptions";

$meta_values = get_post_custom_values($key, $post_id);
?> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...