supertrue
  • 0
Учитель

Показать пользовательский тип записи категории X на странице архива категории X?

  • 0

Я создал пользовательский тип сообщения «landing_page», чтобы содержать контент, который я хочу отображать в верхней части страниц архива категорий.

Итак, для каждой категории у меня есть одна запись на целевой странице, помеченная этой категорией. Что мне нужно добавить в шаблон категории archive.php, чтобы он отображал содержимое целевой страницы этой категории (или пользовательского термина таксономии)?

query_posts(
    array( 'posts_per_page' => 1,
    'post_type' => landing_page,
    'category' => [[???]] ));

     while (have_posts()) : the_post();
    the_content();
endwhile;
?>
Share
  1. Я бы предложил добавить что-то подобное в начало файла темы или туда, где вы хотите, чтобы этот контент отображался в архиве, категории или где-то еще.

    // Check if it's a category or taxonomy archive
    if( is_category() || is_tax() ) {
        // Grab the queried data, slug, tax, etc..
        $queried = $wp_query->get_queried_object();
        // Check taxonomy and slug are set
        if( isset( $queried->taxonomy ) && isset( $queried->slug ) ) {
            // Look for a landing page post type with a slug that matches the current queried slug
            $landing_page = get_posts( 'name=' . $queried->slug . '&post_type=landing_page&posts_per_page=1&nopaging=1' );
            // If the result wasn't empty
            if( !empty( $landing_page ) ) {
                // Output the title and content using the same filters WP uses in the loop
                echo apply_filters( 'the_title', get_the_title( $landing_page->ID ) );
                echo apply_filters( 'the_content', get_the_content( $landing_page->ID ) );
            }
        }
    }
    

    Это должно делать то, что вы хотите, не прерывая основной запрос категории для архива.

    Надеюсь, это поможет.

    • 0
  2. Вы можете получить текущую категорию с помощью

    и поскольку вы используете archive.php, а не category.php, сначала проверьте, является ли это категорией, что-то вроде этого:

    if (is_category()){
    query_posts(
        array( 'posts_per_page' => 1,
        'post_type' => 'landing_page',
        'category' =>  get_query_var('cat'));
    
         while (have_posts()) : the_post();
            the_content();
         endwhile;
    
    }
    
    • 0

Оставить ответ

You must login to add an answer.