パラメータをGETで取得しCSSを切り替える英語/日本語スイッチ php

PHP

$langswitch =htmlspecialchars($_GET["lang"], ENT_QUOTES, 'UTF-8' );
if($langswitch===en){
echo '.lang-en{display:block;}';
echo '.lang-jp{display:none;}';
}else{
echo '.lang-en{display:none;}';
echo '.lang-jp{display:block;}';

wordpressのheader.php等に記述

HTML

<div class="lang-en">英語</div>
<div class="lang-jp">日本語</div>

サンプル

Get

GETで取得しhtmlspecialcharsで特殊文字を HTML エンティティに変換。
「===」厳密等価演算子で比較し一致したらCSSを出力します。

問題点

・ページの文字コードは変わらないため海外SEO的にはよくない
・言語が増えるとCSSの記述が増え冗長になる

使うときは簡単に英語切り替えしたい場合が想定されます。

ページ遷移しても言語を切り替えたままにする場合はjavascriptでlocalstorageを使用しパラメータを保存する等が考えられます。

wordpressの投稿でビジュアル・テキストの切り替えでspanが消える場合

wordpressの投稿画面でビジュアルとテキストを選んで編集することができますが、初期機能では<span>span</span>等をテキストで入力しビジュアルに切り替えると勝手に消えます。

調べるとtiny mceというwysiwygエディタを流用して実装されているとのこと。
プラグインを入れて解決する方法も検索するとでてきますが、プラグインは使用したくないのでfunctions.phpをいじります。

function custom_editor_settings( $initArray ){
	$initArray['body_id'] = 'primary';
	$initArray['body_class'] = 'post';
	$initArray['valid_children'] = '+body[style],+div[div|span],+span[span]';
	$initArray['verify_html'] = false;
	return $initArray;
}
add_filter( 'tiny_mce_before_init', 'custom_editor_settings' );

■【WordPress】ビジュアル・テキスト切り替えでタグが消える時の対処法(style,div,span,p,br等)
http://hapisupu.com/2015/09/wordpress-editor-visual-text-switch-tag-erase-fix/

上記のブログから教えていただきました。

spanで囲って装飾をつけたりする場合必須ではないでしょうか。

Hello Dollyの有効活用

hellodolly

hello-dolly

ワードプレスをインストールすると最初からインストールされている有名なプラグイン「Hello Dolly」。

 

これはただのプラグインではありません。Louis Armstrong によって歌われた最も有名な二つの単語、Hello, Dolly に要約された同一世代のすべての人々の希望と情熱を象徴するものです。このプラグインを有効にすると、すべての管理画面の右上に Hello, Dolly からの歌詞がランダムに表示されます。

 

ということで、素敵なプラグインです。

だいたい消されてしまうのですが、ランダム表示プログラムに使えるのでは?と改良してみました。

 

作者のMatt Mullenwegさんリスペクトをこめて。

 

<?php
function hello_dolly_get_lyric() {
	$lyrics ="Hello, Dolly
(*´ω`*)
( ˘ω˘ )スヤァ
(*^◯^*)";
	$lyrics = explode("\n", $lyrics );
	return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] );
}
	$chosen = hello_dolly_get_lyric();
	echo"<p id='dolly'>$chosen</p>";
?>

サンプル
https://promenade.in/run-wordpress-hello-dolly/

コピペでつくるwordpressサイト テンプレートタグ

wordpresstag2

このブログはwordpressで運営しているのですが、どうもテンプレートタグがいつまでも覚えられません。

あいかわらず、過去データを引っ張り出しコピペで作っているので効率が悪いです。。

書籍もたくさん発行されていたり、WordPress Codexなどのwikiもあるのですが、 本は買ったことはなく、wikiの方は意外ととっつきずらかったりして苦戦しています。

そこで、いつも救世主となっているのが各クリエイターさんのブログです。

特に下記の記事にはお世話になりました。

WordPressテンプレートタグ集|初心者即実践&仕事で使えるコピペ用 https://webdesignerwork.jp/wordpress/wordpress_tag/

今回は、さらによく使うテンプレートタグをコピペで使えるようにさらに充実させたいと思います。
(ネットがなくなったらなにもできなそう・・・)

ループ作成基本セット

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php if(has_post_thumbnail()) { echo the_post_thumbnail(); } ?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>
<?php endwhile; ?>
<?php else : ?>
<?php endif; ?>

がないとエラーになります。最初はそれすら知りませんでした。

パーマリンクとタイトル

<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
<?php the_title(); ?></a>

ページネーション

    <?php global $wp_rewrite;
    $paginate_base = get_pagenum_link(1);
    if(strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()){
        $paginate_format = '';
        $paginate_base = add_query_arg('paged','%#%');
    }
    else{
        $paginate_format = (substr($paginate_base,-1,1) == '/' ? '' : '/') .
        user_trailingslashit('page/%#%/','paged');;
        $paginate_base .= '%_%';
    }
    echo paginate_links(array(
        'base' => $paginate_base,
        'format' => $paginate_format,
        'total' => $wp_query->max_num_pages,
        'mid_size' => 4,
        'current' => ($paged ? $paged : 1),
        'prev_text' => '« 前へ',
        'next_text' => '次へ »',
    )); ?>

個別テンプレート作成

<?php
/*
Template Name:***
*/ ?>

これくらいですらおぼえられない

サイドバーで使えるセット

カテゴリー(li表示)

<h3>カテゴリー</h3>
<ul>
<?php wp_list_categories('show_count=1&title_li='); ?>
</ul>

<h3>最新の投稿</h3>
<ul>
<?php wp_get_archives('type=postbypost&limit=20');?>
</ul>

最初の文字だけ表示

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

サムネイルの大きさ指定

<?php the_post_thumbnail(array(300,200)); ?>

進む/戻る

<?php previous_posts_link('< Previous Page'); ?>
<?php next_posts_link('Next Page >'); ?>

西暦取得

<?php echo date('Y'); ?>

トップページなどでよくあるNEW!!

<ul>
<?php $posts = get_posts('numberposts=6');
foreach($posts as $post): ?>
<li class="news">
<?php
$days=7;
$today=date('U'); $entry=get_the_time('U');
$diff1=date('U',($today - $entry))/86400;
if ($days > $diff1) {
echo '<img src="画像" alt="New" />';
}
?>
<?php echo date("Y.m.d.", strtotime($post->post_date)); ?>
<a href="<?php the_permalink(); ?>" id="post-<?php the_ID(); ?>">
<?php the_title(); ?></a></li>
<?php endforeach; ?>
</ul>

投稿数とカテゴリー指定

<?php if (have_posts()) : ?>
<?php query_posts('showposts=1&cat=8'); while(have_posts()) : the_post(); ?>

WordPress 4.2.2 に更新したらはいった余計なコードを消す

wordpress4.2.2

WordPress 4.2.2 に更新したら余計なコードがはいってしまいました。
function.phpにコードを記述して強制撤去しました。

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );

困ったときはremove_actionやってる気がします^^;