WordPress как на ладони
WordCamp Saint Petersburg 2018 wordpress jino

Поиск с фильтром «ТОЛЬКО ИЗБРАННОЕ»

пользуюсь плагином "wp favorite post"
Плагин создает в базе данных для каждого пользователь новую таблицу wpfp_favorites с ID избранных постов. На отдельной странице создается\отображается список этих постов.

Вопрос: как сделать форму поиска с фильтром поиска по избранному пользователя (искать только среди избранного)?

Буду благодарен любым советам, так как тема для меня сырая, даже не предстовляю как делать, единсnвенное знаю что как обычно фильтрация будет влиять на значения в URL b всего (так видел на других сайтах "&filter=search_fav" )

Заметки к вопросу:
kolshix месяц назад

нашел как получить данные (ID) из таблицы в плагине , как это прикрутить к форме поиска

    $limit=10;

	global $wpdb;
	$query = "SELECT post_id, meta_value, post_status FROM $wpdb->postmeta";
	$query .= " LEFT JOIN $wpdb->posts ON post_id=$wpdb->posts.ID";
	$query .= " WHERE post_status='publish' AND meta_key='wpfp_favorites' AND meta_value > 0 ORDER BY ROUND(meta_value) DESC LIMIT 0, $limit";

	$results = $wpdb->get_results($query);
	// массив ID 
	$results_id_array = wp_list_pluck( $results, 'post_id' );

	// теперь создаю запрос new WP_Query() - с выборкой среди ID 
	$the_query = new WP_Query( array( 'post_type' => 'any', 'post__in' => $results_id_array ) );  

Подскажите как дальше быть и в правильном ли направлении и как прикрутить к форме поиска

<form role="search" method="get" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
  <input type="hidden" name="action" value="fav_search">
  <input type="text" name="search-career" value="ИЩЕМ">
  <input type="submit" class="form-submit" value="Submit">
</form>

<?php
  if( isset( $_GET['fav_search'] ) ) {

  }
?>

или к любой другой , я даже понятия не имею что куда вставлять

0
kolshix
227
месяц назад
  • 0

    Те ты предлагаешь кому то за тебя код написать? )

    Закажи у кого нибудь на том же кворке за 500р и попроси что бы тебе подписали код комментариями.

    Если хочешь сам, то вот тебе рекомендации:

    1. Изучи базово mysql запросы, далее найди примеры кода для поиска, поиграйся что бы понять как оно работает.
    2. Перепиши свой запрос на такой, что бы вместо статической фразы поиска, данные брались из твоей формы.

    Но будь аккуратнее, тк если не будешь фильтровать данные их этой формы то сайт смогут поломать.

    kolshix 27 дней назад

    про кворк - отличная идея - позже наверно так и сделаю - тем более что доступ к сайту не нужен - все можно на тестовом. Чето сразу не додумался

    Комментировать
  • 0
    Kama5188

    Попробуй параметр s для get_posts() или WP_Query и там же укажи параметр include (posts__in) в который передай ID фаворитных постов текущего пользователя, которые как я понял сохраняются в метаполе wpfp_favorites.

    Над кодом уже сам посиди, в принципе примеры есть в описании к функциям: get_posts(), WP_Query.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация