Добавление пользовательских типов контента в шаблон страницы


Я везде искал решение, но так и не нашел его. Вот такая ситуация. Я создал пользовательский тип контента с помощью плагина Custom Content Type Manager, и теперь мне нужно использовать эти пользовательские типы сообщений на страницах, которые я создал в WP.

Поэтому я создал страницу под названием "Фотографии" и использовал php-файл шаблона для настройки макета/стилей страницы. Плагин сгенерировал для меня образец шаблона, чтобы получить пользовательские поля, которые я ввел. Это выглядит что-то вроде этого:

get_header(); ?>
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
        <?php the_content(); ?>
        <?php the_author(); ?>

        <h2>Custom Fields</h2>  
        <strong>Image:</strong> <?php list($src, $w, $h) = get_custom_field('image:to_image_array');?>

        <img src="<?php print $src; ?>" height="<?php print $h; ?>" width="<?php print $w ?>" /><br />

<?php endwhile; // end of the loop. ?>

Проблема:

Когда я использую "the_content();" и другие методы php, они извлекают содержимое со страницы под названием "Фотографии", а не содержимое из пользовательского типа контента, созданного с помощью этого плагина.

Есть ли что-то, что я могу переопределить/переписать, чтобы the_content(); из пользовательского типа контента отображался вместо содержимого страниц? Есть ли лучший способ, которым я должен это делать, кроме создания страниц WP и использования пользовательских шаблоны? Я довольно новичок во всем этом бизнесе программирования WP..

Author: Romes, 2012-04-05

2 answers

Цикл в вашем коде автоматически будет извлекать данные из текущего идентификатора страницы (т.Е. Фотографий). Вы должны определить запрос, для которого вы ищете данные. Обязательно замените photo на любой слаг для вашего типа сообщения.

См. http://codex.wordpress.org/Class_Reference/WP_Query для других аргументов вы можете использовать в дополнение к post_type.

<?php

$query = new WP_Query( array( 'post_type' => 'photo' ) );

if ( $query->have_posts() ) :

    while ( $query->have_posts() ) : $query->the_post(); ?>

             <?php the_title(); ?>

    <?php endwhile;

endif;

?>
 3
Author: developdaly, 2012-04-06 17:06:02

Я думаю, что здесь происходит то, что WP замечает, что ваш URL заканчивается на "фотографии", и поэтому он структурирует запрос на основе этого. Ты этого не хочешь. Вам нужно настроить свой собственный запрос. Этот поток должен дать вам представление о том, как структурировать ваш запрос.

 2
Author: Adam Rice, 2017-04-13 12:37:55