発生している問題・エラーメッセージ
カスタム投稿での個別ページにて、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' );
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/31 06:50
2020/08/31 11:57
退会済みユーザー
2020/08/31 12:19
2020/08/31 13:25
退会済みユーザー
2020/08/31 13:29
2020/09/01 07:41
2020/09/01 11:58