Xserver SSH接続方法
Xserver 接続時の注意事項
プロトコルはSFTP
サーバーアドレス はサーバー情報のホスト名
ここが間違いやすい
ユーザー名は サーバーパネルのログインID
注意!! サーバー番号は、サーバーIDではない!!
サーバー番号はこちら
パスワードは ssh鍵のパスワード
ポート番号は 10022
うまく行かないときはターミナルでつなげること!
ssh ユーザー名@ホスト名 -i 秘密鍵ファイルのパス -p ポート番号
エラーを返してくれるので原因が特定しやすい
//permissionがないと言われている .xserver.jp: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). サーバーIDが違うことに気づいた ちなみに鍵は400番にしておくこと chmod 400 [秘密鍵]
原因として、一番多いのがこのパーミッションや所有者設定
sshの仕様上、各ディレクトリは以下のようなパーミッションになっていなければならない。
「~/.ssh」ディレクトリ … 700(drwx------) 「~/.ssh/authorized_keys」ファイル … 600(-rw-------)
ちなみにXserverの場合秘密鍵は400にしておいた。
あと、ターミナルでssh接続するとつながるので coda2でつながらなければ、まずターミナルから接続するのが良い もちろんディレクトリやファイルの所有者はホームディレクトリのユーザである必要がある。 もし設定がうまく出来ていない場合は、対象のユーザで以下のコマンドを実行して再設定を行う。
WordPress 記事の抜粋を取得・表示、文字数・文末[…]のカスタマイズ
記事が長いので、50文字目までを出力したい
//$post->contentに入っている記事の 0番目から50文字目までを取って $contentに詰め込みなさい <?php $content = mb_substr($post->content, 0, 50, 'UTF-8'); //$contentと ... を足して出力しなさい echo $content . '...'; ?>
出力結果 ' ...' が出力されている
mb_substrの関数定義はこちら
WordPress テーマ 固定ページ,Navメニュー作成方法
ファイル名は page.php
WordPressループは回す
WordPressループを回さないと、管理画面からの入力を表示することが出来ないため
//もし、記事があったら <?php if (have_posts()) :?> //記事の数だけループしなさい 固定ページは1つしかないけど、、、 <?php while (have_posts()): the_post(); ?> //タイトルを表示しなさい <h2 class="pageTitle"><?php the_title(); ?><span><?= strtoupper($post->post_name) ; ?></span></h2> <main class="main"> <div class="container"> <div class="content"> //管理画面で入力した記事を表示しなさい <?php the_content(); ?> </div> </div> </main> <?php endwhile; ?> <?php endif; ?>
Nav Menuを利用できるようにする
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' );
これで管理画面に menus が表示される
wp_nav_menu($args)
header.phpに記載する
ulタグとliタグを出力するのに注意すること
//これは下記のHTMLを出力する <?php $args = array( //管理画面で指定するもの下記画像参照 'menu' => 'Main_menu', //ulタグのクラス名 'menu_class' => '', //ulをdivかnavで包み込むか? 'container' => 'false', ); //これで配置 wp_nav_menu( $args ); ?> //===これが上記と同じになる <ul class=""> <li><a href="#">HOME</a></li> <li><a href="#">わたしたちについて</a></li> <li><a href="#">アクセス</a></li> <li><a href="#">最新情報</a></li> <li><a href="#">お問い合わせ</a></li> </ul>
[:600]
公式サイトドキュメント wp_nav_menu() Walker
WordPress searchフォームの作成
まずHTMLで書くと理解しやすい
WordPressで検索フォームを作成するときのポイントは
1) name属性に sを指定
2) form のmethod は当然 get(読み取り)ということ
3) action(送付先) にはTOPページのurlを設定
valueには the_search_query() を渡しておくと便利 (なくても可能)
<form method="get" action="(サイトのTOPページURL)"> <label for="s">検索:</label> <input type="text" value="" name="s" id="s" /> <input type="submit" value="検索" /> </form>
これをあとはWordPressの関数を使って書けば良い
//method はget actionは home_url() <form class="header_search" method="get" action="<?= home_url(); ?>"> //name属性にはsを渡す value はthe_search_query() <input type="text" name="s" value="<?php the_search_query(); ?>" placeholder="キーワードを入力"> </form>
テンプレートファイルにする
テンプレートファイル名はserachform.phpにするというWordPressの決まり
呼び出し側は get_search_from()で呼び出す
呼び出し側
<?php get_search_form(); ?>
HTMLを確認すると入力した値が渡っているのがわかります。
検索結果表示
検索結果表示ファイル名は search.php
検索でなく、結果を表示するので注意が必要
WordPressでカテゴリー一覧へのリンクを表示する
ページ内でカテゴリのリンクを表示する場合は
get_categories( )関数を利用
<?php $args = array( // 親カテゴリーのものだけを一覧で取得 'parent' => 0, 'orderby' => 'term_order', 'order' => 'ASC' ); //$categoriesに詰め込む $categories = get_categories( $args ); ?> //ループで回す <?php foreach( $categories as $category ) : ?> <li> <a href="<?php echo get_category_link( $category->term_id ); ?>"><?php echo $category->name; ?></a> </li> <?php endforeach; ?>
カテゴリーへのリンクを表示する場合は
get_term_by( ) 関数と
get_term_link( )関数を利用する
<?php //slug が newsのオブジェクトを詰め込む $news = get_term_by( 'slug', 'news','category'); //カテゴリへのリンクを生成 第2引数はタクソノミ $news_link = get_term_link( $news, 'category' ); var_dump($news); //===$newsにはこんな感じでオブジェクトが入っている public 'term_id' => int 3 public 'name' => string 'news' (length=4) public 'slug' => string 'news' (length=4) public 'term_group' => int 0 public 'term_taxonomy_id' => int 3 public 'taxonomy' => string 'category' (length=8) public 'description' => string '' (length=0) public 'parent' => int 0 public 'count' => int 3 public 'filter' => string 'raw' (length=3) ?> //リンクを出力 <a href="<?= $news_link ?>" class="btn btn-default">最新情報の一覧<i class="fas fa-angle-right"></i></a>
laravel エラー解決法 一覧
変数の値を確認したいとき
print_r(知りたい変数); die();
ログの確認
500 Internal Server Error サーバー側のプログラムがエラーを吐いた状態です。
storage/logs ディレクトリを確認する
その1 エラーは1行前をチェックすべし!
シンタックスエラー(文法間違い)だったけど、1行上が間違っていることが多い
blade.phpは間にHTMLが入っているため、すぐ上の行とは限らない
PHPのコードのすぐ上と理解する。
//実際は、ここがエラーだった。)が抜けていた <link href="{{ asset('css/app/tamazon.css') }}" rel="stylesheet"> </head> <body> <div id="app"> <nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm"> <div class="container"> <a class="navbar-brand" href="{{ url('/') }}"> //laravelでは、ここがエラーと表示されていた {{ Config::get('const.name') }}
その2 キャッシュ系を疑う
キャッシュのクリアのコマンド
php artisan cache:clear php artisan config:clear php artisan route:clear php artisan view:clear
ちょっと踏み込んだキャッシュのクリア
composer dump-autoload php artisan clear-compiled php artisan optimize php artisan config:cache
ここのページが良さそう。