Отображение содержимого отдельной записи

7 сент. 2014 г., 13:21:36
Просмотры: 75.2K
Голосов: 5

Как я могу отобразить содержимое для отдельной записи? Мой код:

if (is_single()){
    get_header();
    get_sidebar('left-article');
    render_article();
    get_footer();
}

В render_article я вызываю single_post_title() чтобы получить заголовок записи. Однако я не знаю, как получить время и содержимое записи, так как я не могу найти функции наподобие single_post_content() или single_post_time().

1
Комментарии

Сначала вам нужно изучить это

Nilambar Sharma Nilambar Sharma
7 сент. 2014 г. 13:28:38
Все ответы на вопрос 5
0
13
  1. Создайте файл с именем single.php. Этот файл будет автоматически обрабатывать все ваши отдельные записи. Для получения дополнительной информации об иерархии шаблонов WordPress, прочитайте Кодекс

  2. Внутри файла single.php запустите стандартный цикл и подключите header.php, sidebar.php и footer.php

    <?php get_header(); ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    
     <?php the_title(); ?> <!-- Выводит заголовок записи -->
     <?php the_content(); ?> <!-- Выводит содержимое записи -->
     <?php echo get_the_date(); ?> <!-- Выводит дату публикации -->
    
    <?php endwhile; ?>
    <?php endif; ?>
    <?php get_sidebar(); ?> <!-- Подключает боковую панель -->
    <?php get_footer(); ?> <!-- Подключает подвал сайта -->
    
7 сент. 2014 г. 13:39:53
0

Вы можете использовать следующую функцию для получения содержимого записи WordPress

     <?php echo get_the_content(); ?>

а для получения заголовка можно использовать эту функцию

    <?php echo get_the_title(); ?>

для получения даты используйте эту функцию

    <?php echo get_the_date(); ?>
30 мар. 2018 г. 15:30:17
0
function my_category_templates($single_template) {
    global $post;

    // Если запись принадлежит категории 'Offers' (Акции)
    if ( in_category( 'Offers' )) {
        // Используем шаблон single-offer.php
        $single_template = dirname( __FILE__ ) . '/single-offer.php';
    }

    // Скопируйте блок выше для других категорий

    return $single_template;
}

// Добавляем фильтр для шаблонов одиночных записей
add_filter( "single_template", "my_category_templates" );
16 нояб. 2016 г. 14:27:57
0

Используйте get_post() для получения конкретной записи

get_post()

Пример :

<?php $postData = get_post( $id, $output, $filter ); 

echo "<pre>";
print_r($postData);
?>

https://developer.wordpress.org/reference/functions/get_post/

https://www.tipsandtricks-hq.com/query-or-show-a-specific-post-in-wordpress-php-code-example-44

16 янв. 2017 г. 08:28:37
0

Это давний вопрос, но ни один из ответов здесь не показывает правильный способ сделать это, поэтому я хочу предложить лучшую альтернативу. Нет необходимости использовать кучу случайных глобальных функций или полагаться на неопределенное глобальное состояние, созданное этим ужасным "The Loop".

Если вы отображаете содержимое отдельной записи, вам нужно создать файл под названием "single.php" в директории вашей темы. (https://developer.wordpress.org/themes/basics/template-hierarchy/) Это будет шаблон для ваших записей.

single.php

<?php

    namespace mytheme; // Следует указать пространство имен для вашей темы, чтобы избежать конфликтов с WordPress, родительской темой или установленными плагинами.

    defined('ABSPATH') || exit; // Выход, если файл выполняется напрямую, а не через WordPress.

    $post = get_queried_object(); // Этот объект содержит все необходимые данные о записи. Не нужно использовать кучу случайных глобальных функций или The Loop для получения данных записи. Если хотите посмотреть содержимое объекта, используйте var_dump при отладке.

    if (!$post) {
        $wp_query->set_404();
        status_header(404);
        http_response_code(404);
        exit;
    }

    get_header();
?>

<main>
    <h1><?php echo strip_tags($post->post_title); ?></h1>
    <?php if ($post->post_content) { ?>
        <div>
            <?php echo do_shortcode(apply_filters('the_content', $post->post_content)); ?>
        </div>
    <?php } ?>
</main>

<?php get_footer(); ?>
19 дек. 2022 г. 22:18:54