Вопрос: Показать сообщение, нажав на ссылку

Мне нужно отобразить соответствующий пост внутри содержимого div (слева), когда я нажимаю на список ссылок (справа), я не могу понять, как передать ID сообщения и загрузить php в div (слева) при нажатии на ссылку.

Это мой код:

  <div class="display-post">               <?php $args = array(                          'post__in' => array(111,444,555) /*how to pass list of ID here*/               );                $posts = get_posts($args);                foreach ($posts as $p) :                //post!                endforeach; ?> </div> <div class="lists of link">    <a href="#">Link a</a> //displays post id: 222 & 333; when click    <a href="#">Link b</a> //displays post id : 111 & 444 & 555 when click  </div>

Я новичок и не знаю, как вызвать событие click. передать значение в классе div "display-post".

Я думаю, что для этого мне нужно будет использовать метод jquery ajax, но для новичка, такого как я, он не совсем понятен, надеюсь, что кто-то испытал это, может дать мне более простая инструкция.

Ответы и комментарии:

Привет Большое спасибо, это очень подробно и полезно.
Создан 15-10-2016 01:04 Yoona

Вы можете достичь этого с помощью строки запроса.
Сначала вы должны сделать шаблон в папке вашей темы. Чтобы показать список постов справа и описание поста слева, я использую div с именем класса справа и слева (укажите ваши желания css в этих классах).

Показать список постов в правой части div

<? PHP
/ **
* Название шаблона: сообщения
* /
get_header ();
?>

<? PHP

 $ paged = get_query_var ('paged')? get_query_var ('paged'): 1;

$ args = array (
'post_type' => 'post', // Указание типа записи
'posts_per_page' => 10, // Нет. сообщений для показа
'paged' => $ paged // Для нумерации страниц
);

$ loop = new WP_Query ($ args);

while ($ loop-> have_posts ()): $ loop-> the_post ();
    // Получить идентификатор сообщения
    $ id = get_the_ID ();

Приведенный выше код просто создает цикл для отображения списков сообщений, который происходит в каждом списке сообщений или на странице архива. А для отображения заголовков сообщений мы просто используем функцию the_title () с постоянной ссылкой.
Но в этом случае, чтобы сделать заголовок ссылкой на сообщение, мы не будем использовать постоянную ссылку, вместо постоянной ссылки мы будем использовать пользовательский тег привязки () с концепцией строки запроса, чтобы сделать заголовок кликабельным. Чтобы достичь этого, мы должны указать, если условие в URL. В URL, если условие обозначено знаком вопроса (?).
    // Показать название поста
    ?>
    
<? php the_title (); ?>
    
<? php
ENDWHILE;
?>
DIV>

В URL тега привязки приведенного выше кода мы храним идентификатор Post в переменной postid (? Postid =). Переменная $ id содержит идентификатор записи (так как мы сохранили идентификатор записи в этой переменной, используя функцию get_the_ID () в приведенном выше коде). И мы присваиваем значение $ id для postid. Итак, теперь postid содержит идентификатор сообщения.

Показывать описание постов на левой стороне при клике

Теперь у нас есть переменная postid, в которой хранится идентификатор записи, и нам просто нужно извлечь это значение / идентификатор из postid. Чтобы получить значение postid, мы будем использовать метод $ _GET ['postid'], как показано ниже.

<? PHP

    $ post = $ _GET ['postid']; // Получение значения postid из URL

Теперь у нас есть значение postid в переменной $ post. Другими словами, $ post теперь содержит идентификатор записи, описание которой мы должны показать в левой части страницы. Теперь нам просто нужно использовать этот идентификатор для вызова содержимого публикации на текущей странице. Для этого следующие функции сделают свое дело.
    // Чтобы показать содержание сообщения
        $ include = get_posts ("include = $ post");
      $ content = apply_filters ('the_content', $ include [0] -> post_content);
      echo $ content;

?>
DIV>
<? PHP
get_footer ();

Примечание. Прочитайте все описание, а также все комментарии к строкам кода, чтобы полностью понять код. Я пытался сделать это настолько простым, насколько это возможно, но все же, если есть какие-либо сомнения, тогда спросите.
Создан 14-10-2016 12:11