Nakkan Base

functions.phpへの書き込み

【WordPress】タイトル出力

「タイトル=ブラウザのツールバーに表示される文字列」ですが、実を言うと、今まで結構これに悩んでいました。

私のfunctions.phpには、常に以下のコードが書き込んであります。

//タイトル出力   

function title($title)
{
  if (is_front_page() && is_home()) { //トップページなら
    $title = get_bloginfo('name');
  } elseif (!is_front_page() && is_home()) { //トップページ以外なら
    $title = single_post_title('/');
  }
  return $title;
}
add_filter('pre_get_document_title', 'title');

なので、フロントページのタイトルには「サイト名」のみが表示されます。

でもこのコードを書かなければ、「サイト名-キャッチフレーズ」が表示されるんですね!

いやー、知らんかった😳

で、本題は、「キャッチフレーズ-サイト名」にするにはどうすれば良いかということだった。

これがね〜。。。調べてもなかなか出てこないんだよね〜。。。

そしてついに、そのコードをゲットしたのであった❗️

以下を、上のコードの下に付け加えるのである。(💡両方のコードが必要)

function change_document_title( $title )
{
    $title = 'キャッチフレーズ '.$title ;
  return $title;
}
add_filter( 'pre_get_document_title', 'change_document_title' );

これで思った通り、「キャッチフレーズ サイト名」のタイトルが表示されました。

【WordPress】jQueryが動かない時の一番簡単な対処方法

(これ、書いておいたと思っていたけど書いていなかったみたいなので、備忘録として残しておきます)

WordPressのjQueryはすでに独自で備わっているので、コードを書くときに「$」を使ってはならぬという決まりがある。

で、「$ → jQuery」に全て書き換えると良いのだが、それは面倒だし漏れることもあるのでやめておく。

結論。以下で。

「jQuery(function($){ });」でコードを囲む。

<script>
   jQuery(function($){
      $(‘#test’).text();
      $(‘.test’).remove(‘.sample’);
   });
</script>

「電話番号をタップ→発信」の簡単コード

電話番号や電話アイコンをタップするだけで、そのままスマホから発信できるようにする。

出先ではすごく便利な機能です。

この機能は、これからは必須ですね。

コードはめちゃ簡単です。

<a href="tel:00012345678">000-1234-5678</a>

WordPressの投稿でリンクを貼る場合は、もちろん、tel:00012345678 だけでOK。

それで、一応パソコンからはこの挙動を禁止する方が良いらしいので、そのコードも書いておきます。

=functions.php=

function my_wp_head_tel_link(){
if(!wp_is_mobile()): ?>
<style type="text/css">
a[href*="tel:"] {
pointer-events: none;
cursor: default;
text-decoration: none;
}
</style>
<?php endif;
}
add_action('wp_head', 'my_wp_head_tel_link');

これはWordPress限定のコードです。

他にも、jQueryを使ったりする方法があるようですが、とりあえずこれで様子を見たいと思います。

★HTMLで電話番号リンクを設定する方法解説|タップで発信・PCでは無効にする方法も

メニューの表示は、register_nav_menu()を使う

結論から言えば、「add_theme_support( ‘menus’ );」は必要ないという話。

そうじゃなくて、「register_nav_menu()」を使いなさいということ。

この際、複数のメニューを設定するのだと、「register_nav_menus()」となる…のだが、白状すると私、これができなかった(汗)。

一応書いておくと、

register_nav_menus( array(
	'menu-a' => 'メニューA',
	'menu-b' => 'メニューB',
) );

と、すこぶる簡単なことなのですが……なぜかこれがエラーになるので、よくわからないまま次のようにfunctions.phpに書き込んだら正常に表示されました。

=functions.php=

function new_setup_theme()
{
  register_nav_menu('main-nav', 'メインナビゲーション');
  register_nav_menu('side-nav', 'サイドナビゲーション');
}

add_action('after_setup_theme', 'new_setup_theme');

=nav.php=

 <nav id="mainNav">
      <div>
        <?php wp_nav_menu( array( 'theme_location' => 'main-nav' )); ?>
    </div>
  </nav>

「カスタム投稿」を作る

よく思うことですが、WordPressのダッシュボードは初心者には使いづらいですよね。

慣れないと、「どこを開けば良いの?」ってウロウロしちゃう。

例えばブログを書きたいと思う時。

「投稿」を「ブログ」に変えておいてあげると親切ですね。

それから固定ページも、固定ページ一覧なんてズラズラッと出されても見にくいことこの上なし。

なので、固定ページから派生させた「カスタム投稿ページ」があれば、書き手としてはわかりやすいわけです。

ダッシュボードにも新たに表示されますし。

左の例では「投稿→釣果ブログ」にし、カスタム投稿「インフォメーション」を追加しました。

もしかしたら以前にも書いたかもしれないけど、コードは次の通り。

functions.phpに書き込んでください。

// 管理画面の名前変更

function Change_menulabel() {
	global $menu;
	global $submenu;
	$name = '釣果ブログ';
	$menu[5][0] = $name;
	$submenu['edit.php'][5][0] = $name.'一覧';
	$submenu['edit.php'][10][0] = '新しい'.$name;
}
function Change_objectlabel() {
	global $wp_post_types;
	$name = '釣果ブログ';
	$labels = &$wp_post_types['post']->labels;
	$labels->name = $name;
	$labels->singular_name = $name;
	$labels->add_new = '追加'.$name;
	$labels->add_new_item = $name.'の新規追加';
	$labels->edit_item = $name.'の編集';
	$labels->new_item = '新規'.$name;
	$labels->view_item = $name.'を表示';
	$labels->search_items = $name.'を検索';
	$labels->not_found = $name.'が見つかりませんでした';
	$labels->not_found_in_trash = 'ゴミ箱に'.$name.'は見つかりませんでした';
}
add_action( 'init', 'Change_objectlabel' );
add_action( 'admin_menu', 'Change_menulabel' );

/*カスタム投稿を設置*/

//init アクションフックで登録 
add_action('init', 'create_post_type');
function create_post_type()
{ 
  register_post_type(
    'infomation', 
    array( 
      'label' => 'インフォメーション',
      'public' => true,
      'hierarchical' => false, 
      'has_archive' => true,
      'show_in_rest' => true,
      'menu_position' => 5,
      'rewrite' => array('slug' => 'info'), 
		'with_front' => false,
		'supports' => array( 
        'title', 
        'editor',
        'thumbnail',
        'excerpt', 
        'custom-fields', 
        'revisions' 
      )
    )
  );
}

ここでパーマリンクについて一言添えますと、上の青文字部分、’slug’を’info’にしているので、もしパーマリンク設定を「投稿名」にしているなら、「info/投稿名」になります。

うまくリンクできない場合は、パーマリンクをチェックしてみてください。

【追記】

DEBAGにかけると、「必須: このfunctionはプラグインの領域なので設定不可」と出ます。

なので、基本プラグインで設定しなければなりません。

おすすめプラグインは、「Custom Post Type UI」です。

使い方は、こちらのサイト様で↓

★【Custom Post Type UIの使い方】カスタム投稿作成プラグインCPT UI