質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1472閲覧

【WordPress】カスタム投稿ページのtitleの制御方法がわからない

ysda

総合スコア65

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/08/30 08:35

編集2020/08/31 11:56

発生している問題・エラーメッセージ

カスタム投稿での個別ページにて、headタグ内のtitleの設定方法がわからず、困っております。
現状、titleには、「https://(ドメイン名)/news/(記事のタイトル名)」が表示されております。

titleには「(記事のタイトル名)」もしくは固定で「お知らせ」と表示させたいと考えております。
ご教示いただけますと幸いです。

ソースコード

single.php

<?php get_header(); ?> <div class="container"> <div class="content"> <?php if ( have_posts() ) : //条件分岐:投稿があるなら ?>     <?php while ( have_posts() ) : the_post();//繰り返し処理開始 ?>    <div class="article_header">    <p><time><?php the_time('Y.m.j'); ?></time></p>    <div class="article_title title">    <h2><?php the_title(); ?></h2>    </div>    </div>    <div class="article_content">    <?php the_content(); //投稿(固定ページ)の本文を表示 ?>    </div>   <?php endwhile; // 繰り返し終了 ?>     <?php else : //条件分岐:投稿が無い場合は ?>    <h2>投稿がみつかりません。</h2>    <p><a href="<?php echo home_url(); ?>">トップページに戻る</a></p>     <?php endif; //条件分岐終了 ?> </div> <p class="info-list"><a href="<?php echo home_url( '/infolist/' ); ?>" class="a-color">>>お知らせ一覧に戻る</a></p> </div> <?php get_footer(); ?>

header.php

<!DOCTYPE html> <html <?php language_attributes(); //html要素のlang属性を出力 ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); //使用中テーマのスタイルシートURLを出力 ?>"> <?php if ( home_url() ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/toppage/style.css" type="text/css"> <title></title> <?php endif; ?> <?php if ( is_page( 'about' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/about/style.css" type="text/css"> <?php endif; ?> <?php if ( is_page( 'intro' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/intro/style.css" type="text/css"> <?php endif; ?> <?php if ( is_page( 'reservation' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/reservation/style.css" type="text/css"> <?php endif; ?> <?php if ( is_page( 'consultaion' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/consultaion/style.css" type="text/css"> <?php endif; ?> <?php if ( is_page( 'orthokeratology' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/orthokeratology/style.css" type="text/css"> <?php endif; ?> <?php if ( is_page( 'treatment' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/treatment/style.css" type="text/css"> <?php endif; ?> <?php if ( is_page( 'medical-expense' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/medical_expense/style.css" type="text/css"> <?php endif; ?> <?php if ( is_page( 'infolist' ) ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/infolist/style.css" type="text/css"> <?php endif; ?> <?php if ( is_single() ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/single/style.css" type="text/css"> <?php endif; ?> <?php if ( is_archive() ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/infolist/style.css" type="text/css"> <?php endif; ?> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> <link href="https://fonts.googleapis.com/css?family=Lato:400,700|Noto+Sans+JP:400,700" rel="stylesheet"> <script src="https://kit.fontawesome.com/4f1885097e.js" crossorigin="anonymous"></script> <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script> </head> //以下省略

試したこと

header.phpにて、ページの現在位置で条件分岐してCSSを読み込んでいるため、そちらのif文内にtitleタグを挿入しましたが、特に何も変わりませんでした。

↓試したコード

<?php if ( is_single() ): ?> <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/single/style.css" type="text/css"> <title>お知らせ</title> <?php endif; ?>

試したこと20200831追記

Space-Monkey様のご回答を参考に、頂いたソースをfunctions.phpに記載しましたが、特に変化はありませんでした。
加えて、header.phpの<title></title>を削除したことにより、他ページのタイトルもドメイン名が表示されるようになりました。
そのため、そもそもfunctions.php自体が効いていないと考えられます。
以前functions.phpの使用は試みたのですが、その時もうまく動作せず、何も記述せずに放置していたという現状がございます。
浅学で大変恐縮なのですが、解決方法をご教示いただけますと幸いです。

<?php function mytheme_setup() { add_theme_support( 'title-tag' ); add_filter( 'document_title_parts', function( $title ) { if( is_single() && get_post_type() === 'news' ) { $title['title'] = 'お知らせ'; } return $title; } ); } add_action( 'after_setup_theme', 'mytheme_setup' );

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

header.php<title></title>を消す。

functions.phpに以下を追加する。

add_theme_support( 'title-tag' ); add_filter( 'document_title_parts', function( $title ) { if( is_single() && get_post_type() === 'カスタム投稿名' ) { $title['title'] = 'お知らせ'; } return $title; } );

投稿2020/08/30 13:04

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ysda

2020/08/31 06:50

ご回答ありがとうございます。 そちらの内容で試させていただきます。 少々お待ちいただければと存じます。
ysda

2020/08/31 11:57

頂いたソースをfunctions.phpに記述したのですが、うまく動作しませんでした。 内容を質問に追記いたしましたので、もしよろしければご回答をいただけますと幸いです。
退会済みユーザー

退会済みユーザー

2020/08/31 12:19

functions.phpのファイル名や拡張子が間違ってるか複数のテーマがあって別のテーマのファイルを編集してんじゃないの?
ysda

2020/08/31 13:25

確認しましたが、ファイル名等につきましては問題なく、テーマにつきましても該当のテーマでした。
退会済みユーザー

退会済みユーザー

2020/08/31 13:29

functions.phpの最初に<?phpがあると思うが、試しに消したらどうなる? 消した状態でサイトにアクセスしてエラーになれば読み込まれている証拠になる。 エラーにならなければ正常ではない。 functions.php(他も)の編集はくれぐれも管理画面で行わない事。 FTP等を使わないと泣くことになるので注意。
KazuhiroHatano

2020/09/01 07:41

header.phpの<head>内に<?php wp_head(); ?>はちゃんといますか?
ysda

2020/09/01 11:58

>KazuhiroHatano様 おっしゃる通りでした。そちらの記述が抜けておりました。 ありがとうございました。 >Space-Monkey様 ご助言ありがとうございました。 このような稚拙な内容でお手間をとらせてしまい、申し訳ございません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問