Python EOFError: EOF when reading a line

原因: 閉じカッコが抜けていることが多い

pythonを読み込んでいるときに、最後まで来てしまったよ!
という意味
悪い例

for i in range(26):
    print(i)

//ここに閉じカッコがない
    key = (chr(ord("a") + i)
    num = i
    array_alpha['{key}'] = num
    

正解

for i in range(26):
    print(i)

//ここに閉じカッコつける
    key = (chr(ord("a") + i))
    num = i
    array_alpha['{key}'] = num

解決法2: try except を利用する

input_array = []

try:
    while True:

#ここで入力を受け付けているので、エラーが発生しやすい
        s = input()
        if s == '':
            break
        input_array.append(s)

except EOFError:
    pass

try except とは?

例外処理のこと。 エラーが起きる可能性がある場合、try 以下で、その処理をかいておく

except以下は、tryでエラーが発生したときに実行される。

例えば、エラーが起きる可能性としては

DBへの書き込み

入力を受け付けるとき

などがある。

WordPress管理画面からのnavを表示

管理画面からのnavを追加

このように管理画面に MENU が表示されるようになる

f:id:happy_teeth_ago:20200714150359j:plain

functions.php

//メニューを管理画面に追加
add_theme_support('menus');


function register_my_menus() { 
  register_nav_menus( array( //複数のナビゲーションメニューを登録する関数
  //'「メニューの位置」の識別子' => 'メニューの説明の文字列',
    'main-menu' => 'Main_menu',
    'footer-menu'  => 'Footer_menu',
  ) );
}

//上記メニューを登録
add_action( 'after_setup_theme', 'register_my_menus' );

f:id:happy_teeth_ago:20200714150645j:plain

header.php

 <div class="">
                        <ul class="ul-h nav-menu nav-menu-right">
                            <?php
                        $depth = 0;

//下記参照
                        $main_menu = wp_get_nav_menu_items('Main_menu', array());
                        foreach($main_menu as $key => $menu):

//下記参照 $menuのurl の中のthis_urlを 空白にします。
                            $url = str_replace($this_url, "", $menu->url);
                            if($menu->ID == $main_menu[$key + 1]->menu_item_parent && $depth == 0):
                                $depth++;
                                ?>
                            <li class="dropdown">
                                <a href="#">
                                    <?= $menu->title; ?><i class="ion-chevron-down"></i>
                                </a>
                                <ul class="dropdown-menu">
                                    <?php
                            else:
                            ?>
                                    <li><a href="<?= $url; ?>" class="btn-scroll"><?= $menu->title; ?></a></li>
                                    <?php 
                            endif;
                            if($main_menu[$key + 1]->menu_item_parent == 0 && $depth > 0):
                                $depth--;
                                ?>
                                </ul>
                            </li>
                            <?php
                            endif;
                        endforeach;
                        ?>
                        </ul>
                    </div>

wp_get_nav_menu_items

管理画面→外観 → メニュー 内に作られたナビゲーションメニューのアイテムを返します。

str_replace

str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed この関数は、subject の中の search を全て replace に置換します。

WordPress Uncaught TypeError: Cannot read property 'fn' of undefined

このようなエラーが出る

f:id:happy_teeth_ago:20200714121053p:plain

原因 覚えておくべきこと

WordPressでは、WordPressで用意されているjQueryがある。

通常のjQueryの $ は使えない

よって、通常の読み込みのように下記を書くと、WordPressのjQueryを読み込んでしまう。

wp_enqueue_script( 'jquery',  get_template_directory_uri() . '/js/jquery-3.2.1.min.js' );

これを回避するためにこのように記載する

//WordPressの用意したjQueryは読み込まない
wp_deregister_script(‘jquery’);

//一応名前を jquery_jsと名前を変えておく jqueryと記載すると、WordPressの用意したjQueryを読み込んでしまう。
wp_enqueue_script( 'jquery_js',  get_template_directory_uri() . '/js/jquery-3.2.1.min.js' );

//BootStrapを使うにはpopperとjqueryを先に読み込んでおく事
wp_enqueue_script( 'popper_js', get_stylesheet_directory_uri() . '/js/popper.js' );
wp_enqueue_script( 'bootstrap4_js', get_stylesheet_directory_uri() . '/js/bootstrap.min.js');
?>



<?php wp_footer(); ?>
<script type="text/javascript">

//$マークは使えないのでこのように記載してあげよう
jQuery(function($){
   $('.carousel').carousel()
});
</script>

参考にさせていただきました。

briarpatch.co.jp

wp_enqueue_scriptとwp_enqueue_scriptsの違い

結論 wp_enqueue_scriptsはタイミング

スクリプトとスタイルがキューに入れられたときのタイミング

wp_enqueue_scriptはJavaScriptを読み込みますよという事

function themeslug_enqueue_style() {

//stylesheetを読み込みますよ
    wp_enqueue_style( 'my-theme', 'style.css', false );
}
 
function themeslug_enqueue_script() {

//JavaScriptを読み込みますよ。名前は my-js でパスはfilename.js です。
    wp_enqueue_script( 'my-js', 'filename.js', false );
}
 

add_action( 'wp_enqueue_scripts', 'themeslug_enqueue_style' );

//スクリプトとスタイルがキューに入れられたときのタイミングで上記 themeslug_enqueue_scriptを実行する
add_action( 'wp_enqueue_scripts', 'themeslug_enqueue_script' );

Xserver WPForms からメール送付 WordPress

問題:WEBサイトのお問い合わせフォームから、Gmailのメールが送られてこなくなった。

そこでXserverのメールを利用することにする

下記ページの指示通りメールアカウントを追加

www.xserver.ne.jp

作成した、XserverのメールアドレスでWordPressのデフォルトのメールアカウントを変更

f:id:happy_teeth_ago:20200421122315p:plain

プラグインのインストール

SMTPサーバーで送るためのプラグイン

f:id:happy_teeth_ago:20200421122932p:plain 通知メールを使う場合、SMTPサーバー設定を行うことが良いです。
でないと、迷惑メールに入ったり、メールが届かなかったりします。
Xserverの SMTPサーバーを利用します。

SMTPサーバーとは?

Simple Mail Transfer Protocol(シンプル・メール・トランスファー・プロトコルの略です。
インターネットで電子メールを 送信・転送 するために用いられるプロトコルで、現在もっとも普及しているSMTPに対応するメールサーバーのことです。
メールの受信ではないので注意。
ちなみにメールの受取は POP「Post Office Protocol(ポスト・オフィス・プロトコル)の略です。

あとは公式サイトに従い入力

www.xserver.ne.jp

f:id:happy_teeth_ago:20200421150033p:plain

f:id:happy_teeth_ago:20200421150756p:plain

無事設定が済んだら、Email Testからメールを送ってみよう

どこにでも送信できます。 f:id:happy_teeth_ago:20200421151505p:plain

こんなメールが送られてきたら成功!

めでたし めでたし f:id:happy_teeth_ago:20200421151344p:plain

WordPress 検索フォームの実装

検索フォームの実装についてまとめます。

このコードを変更します。

  <form class="header_search">
      <input type="text" placeholder="キーワードを入力">
      <i class="fas fa-search"></i>
  </form>

ポイントは3つ

formタグのaction属性へhomeへのURLを設定

formタグのmethodにはgetを指定

name属性には s を利用する

このパラメーター s が送信されて、DBの検索に利用される
こんな感じになる

 <form action="<?php echo home_url( '/' ); ?>" method="get" class="header_search">
 
//ポイント     
       <input type="text" name="s" value="<?php echo the_search_query( ); ?>" placeholder="キーワードを入力">
       <i class="fas fa-search"></i>
 </form>

検索結果に投稿だけを(固定ページ等を除外して)表示したければ、name属性を変更する

<input type="hidden" value="post" name="post_type" id="post_type" />

公式サイト

wpdocs.osdn.jp