Category: テンプレートタグ


2017/01/08

wordpress|カスタム投稿のタームタイトルの一覧表示

サイドバーに特定タームの記事一覧を表示

<?php
$args = array(
'post_type' => 'タイプ名',
'taxonomy' => 'タクソノミー名',
'term' => 'ターム名',
'posts_per_page' => 10,
'numberposts' => '-1', //表示する記事数。-1 ならすべての投稿を取得。
);
$my_posts = get_posts($args);
foreach ( $my_posts as $post ) {
setup_postdata($post); ?>
<li class="icon"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php
}
?>

 

シンプルなターム一覧

<?php wp_list_categories(array('taxonomy' => 'タクソノミー名')); ?>
<?php wp_list_categories(array('title_li' => '', 'taxonomy' => 'タクソノミー名')); ?>

記事の件数を表示する場合

<?php wp_list_categories(array('taxonomy' => 'architect','show_count' => 1)); ?>

 

特定タームの一覧表示

<?php wp_list_categories(array('title_li' => '', 'taxonomy' => 'カスタム分類名')); ?>

 

 

2017/01/08

wordpress|カスタム投稿のカスタム分類名(タームタイトル)の表示

single-***.phpで
所属するカスタム分類名(タームタイトル)を表示

 

カスタムタクソノミー:タームタイトル

<?php the_taxonomies( $args ); ?>

 

ターム名だけをリンク付きで表示

<?php echo get_the_term_list($post->ID, 'タクソノミー名'); ?>

 

ターム名だけをリンク無しで表示

<?php
if ($terms = get_the_terms($post->ID, 'タクソノミー名')) {
    foreach ( $terms as $term ) {
        echo '<li>' . esc_html($term->name) . '</li>';
    }
}
?>

 

taxonomy-***.phpで
記事が所属するカスタム分類名(タームタイトル)を表示

ターム名だけをリンク無しで表示

<?php single_tag_title(); ?>

 

ターム名だけをリンク無しで表示

<?php if(is_tax()) {
 $taxonomy = get_taxonomy(get_query_var('evenlist'));
 echo sprintf('%s', single_term_title('', false));
} ?>

 

ターム名だけをリンク付きで表示

<?php echo get_the_term_list($post->ID,'evenlist'); ?>

 

2016/11/02

【Jetpack】パブリサイズ共有でカスタム投稿タイプも連携させたいとき|WordPress

facebookとの連携に便利なプラグインJetpack

共有させたい投稿タイプが複数あっても以下のコードで問題ないです。

 

function.php

//jetpackでカスタム投稿の連携
function hoge() {
 add_post_type_support( '【カスタム投稿タイプ】', 'publicize' );
}
add_action( 'init', 'hoge' );
2016/10/08

サイト内検索フォーム|wordpress

検索フォームを設置する時、いつも検索して調べたり、過去に制作したものを参考にしたりしているので。。。

テンプレートタグ

<?php get_search_form(); ?>

htmlとしては下記のように出力されます。

<form role="search" method="get" id="searchform" class="searchform" action="(サイトのURL)">
<div>
<label class="screen-reader-text" for="s">検索:</label>
<input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="検索" />
</div>
</form>

これに合わせてスタイルシート設定すれば、思い通りの検索フォームの完成です。

当サイトの検索フォームはテンプレートタグは使わず、以下の通り

テーマファイル

 <div id="searchform_con">
 <form role="search" method="get" id="searchform" action="<?php bloginfo('url'); ?>" >
 <input type="text" value="" name="s" class="s" />
 <input type="submit" class="searchsubmit" value="search" />
 </form>
 </div>

 

CSS

#searchform_con{
 width: 90%;
 height: auto;
 text-align: center;
 float: left;
 margin-left: 5%;
 margin-right: 5%;
 margin-bottom: 20px;
 background-color: #000000;
}

#searchform{
 width: 100%;
 height: auto;
 text-align: center;
 padding-top: 20px;
 padding-bottom: 20px;
}

#searchform input[type="button"],
#searchform input[type="submit"] {
 background-color: #FFF798;
 background-image: -webkit-linear-gradient(270deg,rgba(255,247,152,1.00) 0%,rgba(255,247,152,1.00) 100%);
 background-image: linear-gradient(180deg,rgba(255,247,152,1.00) 0%,rgba(255,247,152,1.00) 100%);
 border: 1px solid #555555;
 padding-top: 5px;
 padding-right: 10px;
 padding-left: 10px;
 padding-bottom: 5px;
 font-size: 100%;
 color: #555555;
 cursor: pointer;
 width: 10%;
}

#searchform input[type="text"],
#searchform input[type="email"] {
 padding-top: 5px;
 padding-right: 15px;
 padding-left: 15px;
 padding-bottom: 5px;
 border: none;
 font-size: 120%;
 background-color: #FFFFFF;
 width: 30%;
}

#searchform input:link ,
#searchform input:active {
 background-color: #EFEFEF;
 border: none!important;
 -webkit-box-shadow: 0px 0px 0px 0 #F4F4F4!important;
 box-shadow: 0px 0px 0px 0 #F4F4F4!important;
}

#searchform input:hover {
 filter: alpha(opacity=80);
 -moz-opacity: 0.80;
 opacity: 0.80;
 transition: 1.0s;
}

#searchform a:focus, 
#searchform input:focus{
 outline:none;
}
2014/11/27

プラグインに頼らないページネーション|WordPress

function.php

/** ページネーション */
 function pagination($pages = '', $range = 4)
 {
 $showitems = ($range * 2)+1;

global $paged;
 if(empty($paged)) $paged = 1;

if($pages == '')
 {
 global $wp_query;
 $pages = $wp_query->max_num_pages;
 if(!$pages)
 {
 $pages = 1;
 }
 }

if(1 != $pages)
 {
 echo "<div class=\"pagination\"><span>Page ".$paged." of ".$pages."</span>";
 if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo; First</a>";
 if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo; Previous</a>";

for ($i=1; $i <= $pages; $i++)
 {
 if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
 {
 echo ($paged == $i)? "<span class=\"current\">".$i."</span>":"<a href='".get_pagenum_link($i)."#news' class=\"inactive\">".$i."</a>";
 }
 }

if ($paged < $pages && $showitems < $pages) echo "<a href=\"".get_pagenum_link($paged + 1)."\">Next &rsaquo;</a>";
 if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>Last &raquo;</a>";
 echo "</div>\n";
 }
 }

 

テーマファイル

<div class="navigation">
 <?php if (function_exists("pagination")) { pagination($additional_loop->max_num_pages); } ?>
</div>

 

スタイルシート

下記のスタイルシートで、自由なデザインに。。。

.navigation{
 width: 100%;
 height: auto;
 float: left;
}

 .pagination {
 clear:both;
 padding:20px 0;
 position:relative;
 font-size:11px;
 line-height:13px;
 }

.pagination span, .pagination a {
 display:block;
 float:left;
 margin: 2px 2px 2px 0;
 padding:6px 9px 5px 9px;
 text-decoration:none;
 width:auto;
 color:#555555;
 background: #cccccc;
 }

.pagination a:hover{
 color: #fff;
 background-color: #555555;
 }

.pagination .current{
 padding:6px 9px 5px 9px;
 background: #555555;
 color:#fff;
 }

2014/09/09

複数のサイドバーテンプレートを表示する方法

1.「sidebar-●●●.php」というファイルを作成

2.テンプレート内に以下を入力

<?php get_sidebar(‘●●●‘); ?>

 

2014/06/06

カテゴリー毎にsingle.phpのデザインを変更する方法

<?php
 $post = $wp_query->post;

if ( in_category('カテゴリーID') ) {
 /* カテゴリーID1 */
 include(TEMPLATEPATH.'/single-1.php');

}

else {
 /* それ以外 */
 include(TEMPLATEPATH.'/single-default.php');
 }
 ?>

“カテゴリーID”の投稿は[single1.php]のデザインを使用してそれ以外の投稿は、[single2.php]のデザインを使用する。
という内容。

single.phpのコードはこの記述のみ。
あとはsingle1.php、single2.phpにそれぞれ単一ページ用のコードを記述。

もっとたくさんデザインを使い分けたいとき

2つだけだはなく、もっと多くのデザインを使い分けたいときは

 <?php
 $post = $wp_query->post;

if ( in_category('カテゴリーID1') ) {
 /* カテゴリーID1 */
 include(TEMPLATEPATH.'/single-1.php');

}

elseif ( in_category('カテゴリーID2') ) {
 /* カテゴリーID2 */
 include(TEMPLATEPATH.'/single-2.php');

}

elseif ( in_category('カテゴリーID3') ) {
 /* カテゴリーID3 */
 include(TEMPLATEPATH.'/single-3.php');

}

elseif ( in_category('カテゴリーID4') ) {
 /* カテゴリーID4 */
 include(TEMPLATEPATH.'/single-4.php');

}

else {
 /* 上記に当てはまらない */
 include(TEMPLATEPATH.'/single-default.php');
 }
 ?>
2013/12/20

ページスラッグを取得する|WordPress

<?php echo attribute_escape($post->post_name); ?>