WordPress カスタム投稿タイプ使用時のパンくずリスト

Filed under: wordpress — kdcs @ 20年1月28日 火曜日

single.phpなどにカスタム投稿タイプ使用時のパンくずリストを表示させる

single.php

<div id="breadcrumb" class="clearfix">
<a href="<?php echo bloginfo('url'); ?>">トップページ</a> > 
<a href="<?php echo get_post_type_archive_link($post_type); ?>"><?php echo esc_html(get_post_type_object(get_post_type())->labels->singular_name ); ?></a> > 
<?php foreach ( array_reverse(get_post_ancestors($post->ID)) as $parentid ) { ?>
<a href="<?php echo bloginfo('url'); ?>?p=<?php echo $parentid;?>"><?php echo get_page($parentid)->post_title; ?></a> > 
<?php }  the_title(''); ?>
</div

archive.php

<div id="breadcrumb" class="clearfix">
<a href="<?php echo bloginfo('url'); ?>">トップページ</a> > 
<a href="<?php echo get_post_type_archive_link($post_type); ?>"><?php echo esc_html(get_post_type_object(get_post_type())->labels->singular_name ); ?></a>
</div>

WordPress ユーザーレベル(非推奨)は権限グループへ

Filed under: wordpress — kdcs @ 20年1月25日 土曜日

ユーザーレベルは最終的に、バージョン3.0で非推奨となっているもののユーザーレベルシステムを使用するプラグイン(非推奨ですが)との後方互換性のために機能している。

ユーザーレベル「0」は購読者に変換
ユーザーレベル「1」は寄稿者に変換
ユーザーレベル「2」は投稿者に変換
ユーザーレベル「3、4、5、6、7」は編集者に変換
ユーザーレベル「8、9、10」は管理者に変換

ということで、管理者以外で使用しないメニューを非表示にするためfunction.phpに記述していた内容を変更

変更前

    // level10以外のユーザーの場合
    if (!current_user_can('level_10')) {

変更後

    // 管理者以外のユーザーの場合
    if (!current_user_can('administrator')) {

WordPress ログインユーザーを自動ログアウトさせる

Filed under: functions.php,wordpress — kdcs @ 20年1月15日 水曜日

ログインしたまま放置を避けるために一定時間操作が無い場合にログアウトさせる記述

function.phpに記述

//一定時間無操作で自動ログアウトする --------------------------------------------
add_action( ‘admin_init’, ‘mytheme_admin_init’ );
function mytheme_admin_init() {
add_filter( ‘auth_cookie_expiration’, ‘mytheme_auth_cookie_expiration’, 10, 3 );
$user = wp_get_current_user();
wp_set_auth_cookie( $user->ID, true );
}
function mytheme_auth_cookie_expiration( $expiration, $user_id, $remember ) {
if ( $remember ) $expiration = 3600; // 1時間 60 * 60 * 1
return $expiration;
}

$expiration = に秒数を入れる

phpエラー(function.phpのカスタムポスト追加の記述で)

Filed under: functions.php,php,wordpress — kdcs @ 19年8月9日 金曜日

WordPress カスタムポストのパーマリンク(アンカータグ)に
「Notice: Only variables should be assigned by reference in」というエラーが出て
カスタムポストの記事にアクセスできないという状況。

php5からphp7への移行で出るっぽいという記事があったが、エラーが出た環境はphp5.6
何故か他のWordPressサイトではエラーは出ない・・・

修正箇所は、function.php内、カスタム投稿タイプ「○○○」のパーマリンク設定
参照渡しで値を配列に渡している部分

$post = &get_post($id);

これを以下に修正

$post_tmp = get_post($id);
$post = $post_tmp;

さらに、function.php内、一覧にカスタムフィールドの「お名前」を追加

echo attribute_escape($stitle);

attribute_escapeは非推奨とのことでesc_attr()を使用

echo esc_attr($stitle);

※追記 2021年10月9日
php 7.4環境でWordPress 5.7.2を使ったサイト制作時(眼鏡店)にデバッグモードで上記の状態発生
修正の記述で解決。

WordPress canonicalタグで「正規のURL」を出力する

Filed under: wordpress — kdcs @ 19年3月20日 水曜日

canonicalタグは重複するページや類似ページなどコピーコンテンツとしてgoogleからペナルティを受けないために記述するもの

<link rel="canonical" href="「正規のURL」">

サイトをSSL化(httpからhttps)した場合にも有効
header.phpのheadタグ内に入れる
※is_front_page=トップページ is_home=投稿ページ(投稿ページのスラッグ入れる)

<?php if ( is_front_page() ) {
$canonical_url=get_bloginfo('url');
}
elseif ( is_home() ) {
$canonical_url=get_bloginfo('url').'/{ページスラッグ}';
}
elseif (is_category()) {
$canonical_url=get_category_link(get_query_var('cat'));
}
elseif (is_page()||is_single()) {
$canonical_url=get_permalink();
}
$paged = get_query_var( 'paged', 1 );
$page = get_query_var( 'page', 1 );
if ( $paged >= 2 || $page >= 2) {
$canonical_url=$canonical_url.'/page/'.max( $paged, $page );
}
?>
<?php if(!(is_404())):?>
<link rel="canonical" href="<?php echo $canonical_url; ?>">
<?php endif;?>

※WordPressデバッグモードで
「Notice: Undefined variable」が出るため13、14行$paged =と$page =を追加

(続きを読む…)

サイト内検索

カテゴリー

最近の投稿

↑上に戻る