Так как это по сути модальные окошки на главной странице можно поступить следующим образом, приведу часть кода с реального проекта, может поможет:
В стандартном, а точнее настраиваемом ( get_posts( ... ) ) Loop WordPress выводим что хотим, ну к примеру пускай постами (пускай они обязательно относятся к одной какой то
интересующей категории, назовем ее как нибудь, исходя из твоего контекста, я бы назвал рубрику
Главная):
<?php
$posts = get_posts(array(
'numberposts' => -1,
'offset' => 0,
'category' => 'номер категории твоей интересующей — id, число, подсмотреть в админке можно',
'orderby' => 'post_date',
'order' => 'ASC',
'post_type' => 'post',
'post_status' => 'publish'
));
foreach($posts as $post){
setup_postdata($post);
// формат вывода
$id = str_replace('/', '', str_replace('http://' . $_SERVER['SERVER_NAME'], '', get_the_permalink()));
// возьмем к примеру, что h2, а в нем a ссылка — это тот элемент, по клику на который вылазит модальное окно
<h2><a href="#" data-toggle="modal" data-target="#<?= $id ?>"><? the_title() ?></a></h2>
<div class="modal fade" id="<?= $id ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
<div class="modal-body">
<?the_content()?>
</div>
</div>
</div>
</div>
}
wp_reset_postdata();
if(isset($_GET['post_id']) && !empty($_GET['post_id'])){
$post_id = trim(strip_tags($_GET['post_id']));
?>
<script>
$(function(){
$('#<?=$post_id?>').modal();
});
</script>
<?
}
В том месте, где формат вывода, нужно соответственно (к примеру) подключить модальные окна от бутстрап ( но в твоем шаблоне там отдельная разметка и js, нужно уже по ситуации смотреть, чтобы все заработало, но суть реализации от этого не страдает )
В файле functions.php:
function my_single_template($single)
{
global $wp_query, $post;
foreach ((array)get_the_category() as $cat) {
if (file_exists(get_template_directory() . '/single-' . $cat->slug . '.php')) {
return get_template_directory() . '/single-' . $cat->slug . '.php';
} elseif (file_exists('/single-' . $cat->term_id . '.php')) {
return get_template_directory() . '/single-' . $cat->term_id . '.php';
}
}
}
// подключим еще jquery, если в твоей теме он не используется, ну можно как то так, так как он нужен модальных окон бутстрап
function my_scripts_method()
{
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js');
wp_enqueue_script('jquery');
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
Потом идем и создаем файл в теме single-{слаг-категории}.php, отвечающий за показ отдельного поста, относящийся к твоей интересующей категории, в нем надо задать будет:
<?php
header('Location: http://' . $_SERVER["SERVER_NAME"] . '/?post_id=' . str_replace('/', '', str_replace('http://' . $_SERVER['SERVER_NAME'], '', get_the_permalink($post->ID))));
exit;
Это надо чтобы не переходило на url такого поста, а открывало модальное окно определенное на главной.
Проблематика была схожая в одном из моих проектов, решение рабочее. Как я уже сказал, ранее
В том месте, где формат вывода, нужно соответственно (к примеру) подключить модальные окна от бутстрап ( но в твоем шаблоне там отдельная разметка и js, нужно уже по ситуации смотреть, чтобы все заработало, но суть реализации от этого не страдает )
Нужно смотреть и адаптировать под себя:
- Разметку модальных окон в твоей теме
- В том месте, где окно вызывается в бутстрапе через .modal( ... ) надо заменить на вызов показа модального окна соответственно в твоих Js modal, а там уже смотри сам как работает вызов
P.S: Шаблон прикольный, кстати)