PlusOne Blog

「PHP」に関する記事

【PHP】確立を指定した抽選ロジック

PHP

今回は、確立を指定した抽選のコンテンツを作成したので、それの備忘録。
 

 

  function array_rand_weighted($entries){
   $sum  = array_sum($entries);
   $rand = rand(1, $sum);

   foreach($entries as $key => $weight){
     if (($sum -= $weight) < $rand) return $key;
     }
   }

  // 抽選候補となる配列
  // キーが要素で、値が確立になる。
  $entries = array(
   "1等"    => 5,
   "ハズレ"  => 95,
  );

  // 抽選(こんな感じで使用する)
  $result_key = array_rand_weighted($entries);
  if ($result_key == "1等") {
   echo '1等です。';
  } else {
   echo 'ハズレです。';
  }

 
array_sum($array)
・配列の値の合計を計算します。
 
round(A,B)
・整数A~Bの範囲で乱数を発生します。
 
foreach($entries as $key => $weight){
}
・連想配列を使用したforeachi
 $entries の連想配列。各配列を$keyで取り出し、その$keyに相当する値を$weightとして処理を繰り返す。
 
if (($sum -= $weight) < $rand) return $key;
・配列の合計値より、各配列の値を引いていって、乱数より小さい値になったときに、その配列の$keyを返す。
 

 

この記事を読む

【wordpress/SEO】投稿ページなどに、meta データ(description)を挿入する方法

wordpressの投稿ページなどに、個別に meta データの description を挿入できるように、
ダッシュボードの投稿ページにカスタムフィールドを設けて、そこで個別に設定できるようにする方法を紹介します。

同じ meta データの keyword について

現在、Google検索、yahoo検索(yahoo検索はGoogleと同じクローラーを使用している)では、meta データの keyword は対象外となっているため、meta データの keyword は記述しても意味がありません。一方、meta データの description は、現在でも Googleクローラーの対象になっていますので、SEO 対策としては有効と言われています。

 
■functions.php

add_action('admin_menu', 'add_custom_fields');
add_action('save_post', 'save_custom_fields');

function add_custom_fields() {
    add_meta_box( 'my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'post');
    add_meta_box( 'my_sectionid', 'カスタムフィールド', 'my_custom_fields', 'page');
}

function my_custom_fields() {
    global $post;
    $description = get_post_meta($post->ID,'description',true);

    echo "<p>ページの説明(description)160文字以内<br>";
    echo "<input type='text' style='width: 600px;height: 40px;' name='description' value='" . esc_html($description) . "' maxlength='160' /></p>";
}

// カスタムフィールドの値を保存
function save_custom_fields( $post_id ) {

    if(!empty($_POST['description']))
        update_post_meta($post_id, 'description', $_POST['description'] );
    else delete_post_meta($post_id, 'description');

}

function my_description() {

// カスタムフィールドの値を読み込む
    $custom = get_post_custom();
    if(!empty( $custom['keywords'][0])) {
        $keywords = $custom['keywords'][0];
    }
    if(!empty( $custom['description'][0])) {
        $description = $custom['description'][0];
    }

    ?>
    <?php if(is_home()): // トップページ ?>
        <meta name='robots' content='index, follow' />
        <meta name='description' content='トップページに表示させるdescription' />
    <?php elseif(is_single()): // 記事ページ ?>
        <meta name='robots' content='index, follow' />
        <meta name='description' content='<?php echo $description ?>'>
    <?php elseif(is_page()): // 固定ページ ?>
        <meta name='robots' content='index, follow' />
        <meta name='description' content='<?php echo $description ?>'>
    <?php elseif (is_category()): // カテゴリーページ ?>
        <meta name='robots' content='index, follow' />
        <meta name='description' content='<?php single_cat_title(); ?>の記事一覧' />
    <?php elseif (is_tag()): // タグページ ?>
        <meta name='robots' content='noindex, follow' />
        <meta name='description' content='<?php single_tag_title(“”, true); ?>の記事一覧' />
    <?php elseif(is_404()): // 404ページ ?>
        <meta name='robots' content='noindex, follow' />
        <title><?php echo 'お探しのページが見つかりませんでした'; ?></title>
    <?php else: // その他ページ ?>
        <meta name='robots' content='noindex, follow' />
    <?php endif; ?>
<?php
}

各ページのテンプレートの head内、あるいは、header.php に下記記述を記載する。

  <?php my_description() ?>

 

 

この記事を読む

【WordPress】投稿ページの YouTube 全画面表示されないとき

投稿ページに iframe で YouTube を埋め込んだときに、全画面表示ができなかったので、それを解決した備忘録。
 
YouTube動画をフルスクリーンにしようとして、フルスクリーンボタンを押すと、下記のように表示されフルスクリーンが表示されない。

 
まず、YouTube の埋め込み動画を全画面表示を許可するためには、埋め込み iframe の属性に「allowfullscreen」属性が必要で、「allowfullscreen」属性がないと全画面表示は許可されないみたい。
 
そこで、コードを改めて見てみると「allowfullscreen」属性がないので、コレが原因かなと。(しかし、YouTubeで埋め込みコードを取得するとき、確か全画面表示を許可したんだけど…と思いつつ)
 
早速、コードを修正して iframe に「allowfullscreen」属性を追加してみる。
、、、が、やはり、全画面表示できない。。。 もう一度、コードを確認してみると、先ほど追加した「allowfullscreen」属性が消えている!
 
そういえば、WordPress の投稿は、登録してある属性しかダメということを思い出し、iframe の「allowfullscreen」属性を許可するように、下記コードを functions.php に記載する。
(投稿ページで iframe を書けるようにしたコード(こちらの投稿記事)に追加した。)

add_filter('content_save_pre','test_save_pre');

function test_save_pre($content){
	global $allowedposttags;

	// iframeとiframeで使える属性を指定する
        $allowedposttags['iframe']=array('class'=>array(),'src'=>array(),
            'width'=>array(),'height'=>array(),'frameborder'=>array(),
            'scrolling'=>array(),'marginheight'=>array(),
            'marginwidth'=>array(),'allowfullscreen' => array());

	return $content;
}

 
確認してみると、無事に全画面表示できるようになった。解決、解決。

この記事を読む

【Microsoftから Internet Explorer 11 サポート終了までのスケジュールが発表】

Microsoftから、IE11(Internet Explorer 11)サポート終了までのスケジュールが発表されました。
https://techcommunity.microsoft.com/t5/microsoft-365-blog/microsoft-365-apps-say-farewell-to-internet-explorer-11-and/ba-p/1591666

===================================
2020年11月30日、Microsoft TeamsのWebアプリはIE11をサポートしなくなります。
2021年3月9日、Microsoft Edge Legacy(Windows10のデフォルトブラウザ)をサポートしなくなります。
2021年8月17日、Microsoft 365のアプリとサービスはIE11をサポートしなくなります。
===================================

 

 

★→弊社は、従来よりWEBアプリ、ホームページともにモダンブラウザ(chrome,safari等)を推奨しており、
Internet Explorer 11やMicrosoft Edge Legacyは推奨しておりませんが
今回のMicrosoftからの発表により、より積極的にモダンブラウザへの切り替えを勧めて参ります。

この記事を読む
記事一覧に戻る