Tag: function.php


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

2016年11月02日 wordpressテンプレートタグプラグイン

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

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

 

function.php

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

「Jetpack」で出力される「OGP設定」を無効にする|WordPress

2016年11月02日 wordpressプラグイン

プラグインjetpackは、OGP設定のタグを自動で生成し、出力までしてくれる優れものなのですが、
自分で設定したとき二重に表示され、エラーみたいになるので要注意。

そういう時は、funcion.phpに以下を入力

funcion.php

// delete JetPack OGP tags
add_filter( 'jetpack_enable_open_graph', '__return_false' );

アップロードする画像のサイズを追加|WordPress

2016年10月14日 wordpressアイキャッチ画像画像

WordPressでは、画像をアップロードすると、
サムネイルサイズ・中サイズ・大サイズ・フルサイズが自動的にアップされます。
サイズの変更はダッシュボード>設定>メディアからできます。

毎回設定から変更するのは面倒くさい、他のサイズも使いたいという時に役に立ちます。

しかも簡単です。function.phpに以下を追加するだけ。

 

function.php

横200px、縦125pxの画像を追加する時。
【thumb_name】は自分でわかるように入れてください。

/** 好きな画像サイズを追加する
add_image_size( 'thumb_name', 200, 125, true );

表示させるときは、

テンプレートファイル

<?php the_post_thumbnail('thumb_name'); ?>

アイキャッチ画像の出力|WordPressの要領です。

カスタム投稿タイプの追加

2016年10月09日 wordpressカスタム投稿

カスタム投稿タイプ?

WordPressの「投稿」とは別に、新たに自分で、投稿タイプを増やすためのものです。

プラグインを利用してもいいのですが、プラグインに頼らず、そんなに難しくはないので、テーマをカスタマイズ。

まず、追加するカスタム投稿を以下のようにしたい時


カスタム投稿名→post
表示する投稿タイプ名→ポスト

■カテゴリタクソノミー(カテゴリー分け)
カテゴリー名→post_category
表示するカテゴリー名→ポストカテゴリー

■カテゴリタクソノミー(タグ分け)
タグ名→post_tag
表示するタグ名→ポストタグ

※カテゴリタクソノミーは必要なければ、記述しないでもOK。


function.php

/**———————————————————————————————-*/
/* カスタム投稿タイプを追加 */
add_action( 'init', 'create_post_type' );
function create_post_type() {
 register_post_type( 'post', //カスタム投稿タイプ名を指定
 array(
 'labels' => array(
 'name' => __( 'ポスト' ),
 'singular_name' => __( 'ポスト' )
 ),
 'public' => true,
 'has_archive' => true, /* アーカイブページを持つ */
 'menu_position' =>5, //管理画面のメニュー順位
 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ),
 )
 );

/* カテゴリタクソノミー(カテゴリー分け) */
 register_taxonomy(
 'post_category', /* タクソノミーの名前 */
 'post', /* 使用するカスタム投稿タイプ名 */
 array(
 'hierarchical' => true, /* trueだと親子関係が使用可能。falseで使用不可 */
 'update_count_callback' => '_update_post_term_count',
 'label' => 'ポストカテゴリー',
 'singular_label' => 'ポストカテゴリー',
 'public' => true,
 'show_ui' => true
 )
 );
/* カスタムタクソノミー、タグを使えるようにする */
 register_taxonomy(
 'post_tag', /* タクソノミーの名前 */
 'post', /* 使用するカスタム投稿タイプ名 */
 array(
 'hierarchical' => false,
 'update_count_callback' => '_update_post_term_count',
 'label' => 'ポストタグ',
 'singular_label' => 'ポストタグ',
 'public' => true,
 'show_ui' => true
 )
 );
}
/**———————————————————————————————-*/

管理画面のメニュー順位

MENU_POSITIONの数値 管理画面上の移動場所
5 投稿の下
10 メディアの下
15 リンクの下
20 固定ページの下
25 コメントの下
60 外観の下
65 プラグインの下
70 ユーザーの下
75 ツールの下
80 設定の下
100 最下部に独立させる

「短縮URLを取得」ボタンを表示

2016年01月14日 wordpress管理画面

WordPressをアップデートしたら、編集画面のパーマリンクの「編集」ボタンの横に「短縮URLを取得」ボタンがなくなってしまいました。
けっこう便利だったので、会った方がいいなってことで、以下をfunction.phpに記入

function.php

 /** 「短縮URLを取得」ボタンを表示 */
 add_filter( 'get_shortlink', function( $shortlink ) {return $shortlink;} );

 

画像をアップロードする際に自動的にリサイズする

2015年04月11日 wordpress画像

1024px以上のもをアップロードしても、アップロード時に縦横長い方を
【ダッシュボード→メディア設定】の大サイズ(1024pxがデフォルト)にリサイズします。

 

function.php

function otocon_resize_at_upload( $file ) {
 // $file contains file, url, type
 // array( 'file' => 'path to the image', 'url' => 'url of the image', 'type' => 'mime type' )

// resize only if the mime type is image
 if ( $file['type'] == 'image/jpeg' OR $file['type'] == 'image/gif' OR $file['type'] == 'image/png') {

// set width and height
 $w = intval(get_option( 'large_size_w' ) ); // get large size width
 $h = intval(get_option( 'large_size_h' ) ); // get large size height

// get the uploaded image
 $image = wp_get_image_editor( $file['file'] );

// if no error
 if ( ! is_wp_error( $image ) ){
 // get image width and height
 $size = getimagesize( $file['file'] ); // $size[0] = width, $size[1] = height

if ( $size[0] > $w || $size[1] > $h ){ // if the width or height is larger than the large-size
 $image->resize( $w, $h, false ); // resize the image
 $final_image = $image->save( $file['file'] ); // save the resized image
 }
 }

} // if mime type

return $file;

}
 add_action( 'wp_handle_upload', 'otocon_resize_at_upload' );

 

容量が大きすぎると、アップロード自体ができないので、アップロードのサイズの上限を上げておいた方がいいです。

アップロードファイルサイズの上限を変更|WordPress

 

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

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;
 }

文字数をコントロール|WordPress

2013年12月11日 wordpressテンプレートタグ

抜粋の文字

記事本文内から抜粋した内容を表示

<?php the_excerpt(); ?>

これは、110文字表示されて、最後に[…]が表示されます。

抜粋の文字数をコントロール

<?php echo mb_substr(get_the_excerpt(), 0, 30); ?>

この場合、110文字以下の数字であれば、これでOKです。

 

抜粋の文字数の変更

functions.phpに以下を記述

//概要(抜粋)の文字数調整
function my_excerpt_length($length) {
	return 200;
}
add_filter('excerpt_length', 'my_excerpt_length');

「return 200;」は200文字ということです。

文末の[…]を削除する方法

functions.phpに以下を記述

//概要(抜粋)の省略文字
function my_excerpt_more($more) {
	return '';
}
add_filter('excerpt_more', 'my_excerpt_more');

文末の[…]を別の文字に変更する方法

functions.phpに以下を記述

//概要(抜粋)の省略文字
function my_excerpt_more($more) {
	return 'ここを変更!!';
}
add_filter('excerpt_more', 'my_excerpt_more');

 

タイトルの文字

40文字に制限したいとき
mb_substr(文字列,何文字目から取り出すか,何文字取り出すか)

 

<?php $title= mb_substr($post->post_title,0,40); echo $title; ?>

 

 

指定した文字数で省略後に「・・・」、指定した文字数以内であればそのまま表示

 <?php if(mb_strlen($post->post_title)>23) { $title= mb_substr($post->post_title,0,23) ; echo $title. ・・・ ;} else {echo $post->post_title;}?>