#php #wordpress #post #custom-post-type
#php #wordpress #Публикация #пользовательский тип записи
Вопрос:
Я хочу создать одностраничник для моего пользовательского типа записи, но мой метод не сработал. Я создал пользовательский тип записи следующим образом:
function portfolio(){
$args = array(
'public' => true,
'label' => __('Portfolio'),
'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'));
register_post_type('portfolio', $args);
register_taxonomy('portfolio', 'portfolio');
}
add_action('init', 'portfolio');
Я сделал запрос для отображения всех элементов:
<?php
// The Query
$the_query = new WP_Query( array( 'post_type' => 'portfolio', 'orderby' => 'date', 'order' => 'DESC', 'posts_per_page'=>-1 ) );
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id ( $the_query->ID ), 'thumbnail' );
?>
<a href="<?php the_permalink(); ?>" class="col-md-4 item-portfolio">
<img src="<?php echo $thumbnail[0]; ?>" alt="">
<h4><?php the_title(); ?></h4>
<p><?php echo get_post_meta( $post->ID, 'subtitle', true ); ?></p>
</a>
<?php endwhile; ?>
И я создал single-portfolio.php файл, но когда я захожу в single item, у меня есть index.php вместо single-portfolio.php шаблон. Где я допустил ошибку? Спасибо за помощь.
Комментарии:
1. вы добавили это в свою тему или плагин?
2. Да, я объявил портфолио функций в своем functions.php и запрос в index.php
Ответ №1:
После:
register_post_type( 'portfolio' , $args );
добавьте это:
flush_rewrite_rules();