質問編集履歴

1 js

io-rin

io-rin score 11

2017/11/17 20:21  投稿

WordPressでget_template_partが効かない場合の対処法
WordPressにて
フロントページの表示を固定ページに変更。
news.phpを作成し、Template Name: News Topで作成しました。
以下がcodeです。
```ここに言語を入力
<?php
/*
Template Name: News Top
*/
?>
<?php get_header(); ?>
<?php get_template_part( 'news-slider' ); ?>
<div class="container">
<div class="contents">
<?php if(is_category() || is_tag()): ?>
<h1><?php single_cat_title() ?>の記事一覧</h1>
<?php elseif(is_year()): ?>
<h1><?php the_time("Y年") ?>の記事一覧</h1>
<?php elseif(is_month()): ?>
<h1><?php the_time("Y年m月") ?>の記事一覧</h1>
<?php endif; ?>
<?php if(have_posts()): while(have_posts()): the_post(); ?>
<!--kiji-listを呼び出し-->
<article <?php post_class( 'kiji-list' ); ?>>
<a href="<?php the_permalink(); ?>">
<!--画像を追加-->
<?php
           if (has_post_thumbnail()) {
               the_post_thumbnail( array(220,150) );
           }else {
               echo '<img src="' . get_bloginfo('template_directory') . '/img/no-image.gif' . '" width="150" height="150" alt="thumbnail" />';
           }
?>
<div class="text">
<!--タイトル-->
<h2><?php the_title(); ?></h2>
<!--投稿日を表示-->
<span class="kiji-date">
<i class="fa fa-pencil"></i>
<time datetime="<?php echo get_the_date( 'Y-m-d' ); ?>">
<?php echo get_the_date(); ?>
</time>
</span>
<!--カテゴリ-->
<?php if (!is_category()): ?>
<span class="cat-data">
<?php if( has_category() ): ?>
<?php $postcat=get_the_category(); echo $postcat[0]->name; ?>
<?php endif; ?>
</span>
<?php endif; ?>
<!--抜粋-->
<div class="kiji-excerpt">
<?php the_excerpt(); ?>
</div>
</div>
</a>
</article>
<!--ループ終了-->
<?php endwhile; endif; ?>
<div class="pagination">
<?php echo paginate_links( array(
'type' => 'list',
'mid_size' => '1',
'prev_text' => '&laquo;',
'next_text' => '&raquo;'
) ); ?>
</div>
</div>
<?php get_sidebar(); ?>
</div>
<?php get_footer(); ?>
```
こちらがスライド(news-slider.php)です。
```ここに言語を入力
<div id="slider-area">
<div id="slides" class="slides">
<div id="slides-inner" class="slides-inner">
<?php $args = array(
'posts_per_page' => 5,
);
$my_query = new WP_Query( $args );?>
<?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
<article <?php post_class( 'slidekiji' ); ?>>
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail('large'); ?>
<div class="text">
<span class="kiji-date">
<i class="fa fa-pencil"></i>
<time
datetime="<?php echo get_the_date( 'Y-m-d' ); ?>">
<?php echo get_the_date(); ?>
</time>
</span>
<nobr><span class="cat-data ">
<?php if( has_category() ): ?>
<?php $postcat=get_the_category(); echo $postcat[0]->name; ?>
<?php endif; ?>
</span></nobr>
<h2><?php the_title(); ?></h2>
</div>
</a>
</article>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
</div>
</div>
<div id="slides-nav" class="slides-nav"></div>
</div>
```
スライダーのjsです
```ここに言語を入力
jQuery(function($) {
jQuery('#slides').append('<ul id="pager"><li><a href="#" class="prev"><</a></li><li><a href="#" class="next">></a></li></ul>');
var jQuerypager = jQuery('#pager'),
jQueryslidesWrap = jQuery('#slides'),
jQueryslides = jQuery('#slides-inner'),
jQueryslideKiji = jQueryslides.find('.slidekiji'),
jQuerynav = jQuery('#slides-nav'),
current = 0,
number = jQueryslideKiji.length;
jQueryslideKiji.each(function(i) {
jQuery(this).css({
left: '100' * i + '%'
});
jQuerynav.append('<a href="#"></a>');
});
function navUpdate() {
jQuerynav.find('a').removeClass('active');
jQuerynav.find('a').eq(current).addClass('active');
}
function slider(index) {
if (index < 0) {
index = number - 1;
}
if (index > number - 1) {
index = 0;
}
jQueryslides.animate({
left: '-100' * index + '%'
});
current = index;
navUpdate();
}
jQuerypager.find('a').click(function(event) {
event.preventDefault();
if (jQuery(this).hasClass('prev')) {
slider(current - 1);
} else {
slider(current + 1);
}
});
jQuerynav.find('a').click(function(event) {
event.preventDefault();
var navIndex = jQuery(this).index();
navUpdate();
slider(navIndex);
});
var start;
function timerStart() {
start = setInterval(function() {
slider(current + 1);
}, 3000);
}
function timerStop() {
clearInterval(start);
}
slider(current);
timerStart();
jQueryslideKiji.on({
mouseover: timerStop,
mouseout: timerStart
});
});
```
他front-page.php やsingle.phpでも<?php get_template_part( 'news-slider' ); ?>を入れると、スライドは正常に動くのですがnews.phpのページだけ表示されません。何か改善方法はありますでしょうか?よろしくお願いします。
  • PHP

    26960 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    10192 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る