1. Позвольте вставлять php-код на страницах сайта.
Для этого добавьте нижеприведенный код в файл functions.php.
Внимание: это небезопасно!
Любой имеющий доступ к записям и страницам сайта сможет вставить php-код.
function exec_php($matches){
eval('ob_start();'.$matches[1].'$inline_execute_output = ob_get_contents();ob_end_clean();');
return $inline_execute_output;
}
function inline_php($content){
$content = preg_replace_callback('/\[exec\]((.|\n)*?)\[\/exec\]/', 'exec_php', $content);
$content = preg_replace('/\[exec off\]((.|\n)*?)\[\/exec\]/', '$1', $content);
return $content;
}
add_filter('the_content', 'inline_php', 0);
2. Вставьте следующий код на страницу, где должны выводится название категории, названия ее подкатегорий, а также названия и миниатюры вложенных записей.
[exec]
$parent_id = 999;
echo '<h1>'. get_cat_name( 999 ) .'</h1>';
# получаем дочерние рубрики
$sub_cats = get_categories( array(
'child_of' => $parent_id,
'hide_empty' => 0
) );
if( $sub_cats ){
foreach( $sub_cats as $cat ){
echo '<h2>'. $cat->name .'</h2>';
# получаем записи из рубрики
$myposts = get_posts( array(
'numberposts' => -1,
'category' => $cat->cat_ID,
'orderby' => 'post_date',
'order' => 'DESC',
) );
# выводим записи
global $post;
foreach($myposts as $post){
setup_postdata($post);
echo '<li><h3>'. get_the_title() .'</h3>'.the_post_thumbnail().'</li>';
}
wp_reset_postdata();
}
}
[/exec]
Где:
999 - id родительской рубрики. Замените это значение на нужное.
Примечание:
PHP-код будет выполняться между
[exec] ...
[/exec].
Не нужно вставлять <?php ... ?>