Simplicityの特徴 › フォーラム › Simplicityについての質問 › simplicity 1.9.3でのtitleタグの順序変更ができない
- このトピックには7件の返信、2人の参加者があり、最後に
により2年、 8ヶ月前に更新されました。
-
投稿者投稿
-
-
2016年1月30日 3:31 PM #35976
hoshi
ゲストsimplicityを初めて導入したものです。
WordPress 4.4.1でsimplicity 1.9.3を使っています。
titleタグで、デフォルトでは「ブログ名 | 説明」となっているものを
「説明 | ブログ名」に変更したく、seo.phpをそのように変更したのですが
反映されません。header-title-tag.phpも試しに変えてみたのですが
そもそもWordPress4.1以上なので反映されるはずもなく。。。
この解決法について何か知っている方はいませんか?
よろしくお願いいたします。変更したseo.phpはこれです
<?php //SEO関係の関数 //Wordpress4.1からのタイトル自動作成 function theme_slug_setup() { add_theme_support( 'title-tag' ); } add_action( 'after_setup_theme', 'theme_slug_setup' ); //タイトル自動作成をフックして変更したい部分を変更する if ( !function_exists( 'simplicity_wp_title' ) ): function simplicity_wp_title( $title ) { global $paged, $page; if ( is_feed() ) { return $title; } $site_name = trim( get_bloginfo('name') ); if(is_front_page())://トップページのtitle $title = $site_name; if ( is_catch_phrase_to_frontpage_title() )://キャッチフレーズを追加する場合 $title = trim( get_bloginfo('description') ). ' | ' .$title; endif; elseif(is_singular())://シングルページと固定ページのtitle $title = trim( get_the_title() ). ' | ' .$site_name; if ( is_site_name_to_singular_title() )://サイト名を追加する場合 $title = $title. ' | ' .$site_name; endif; elseif(is_category())://カテゴリのtitle $title = single_cat_title( '', false ) .' | ' . $site_name; elseif(is_month())://月別アーカイブのtitle $title = get_query_var('year').'年'.get_query_var('monthnum').'月の一覧'. ' | ' .$site_name; // elseif(is_tag()): // $title = single_tag_title( '', false ) .' | ' . $site_name; // elseif(is_archive()): // if ( is_day() ): // $title = get_the_time( get_theme_text_ymd_format() ). ' | ' . $site_name; // elseif ( is_month() ): // $title = get_the_time( get_theme_text_ym_format() ). ' | ' . $site_name; // elseif ( is_year() ): // $title = get_the_time( get_theme_text_y_format() ). ' | ' . $site_name; // endif; elseif(is_search()): $title = get_search_query().'の検索結果'. ' | ' . $site_name; if(get_search_query() === ""): $title = '全てのページ'.' | '.$site_name; endif; // else: // $title = $site_name; // endif; // if($paged >= 2 || $page >= 2): // $title = $title . ' | '.sprintf('%s page', // max($paged,$page)); endif; return $title; } endif; //Wordpress4.4以上 //add_filter( 'pre_get_document_title', 'simplicity_wp_title'); //Wordpress4.4未満 add_filter( 'wp_title', 'simplicity_wp_title'); if ( !function_exists( 'simplicity_title_separator' ) ): function simplicity_title_separator( $sep ){ $sep = ' | '; return $sep; } endif; add_filter( 'document_title_separator', 'simplicity_title_separator' ); if ( !function_exists( 'simplicity_title_parts' ) ): function simplicity_title_parts( $title ){ $site_name = trim( get_bloginfo('name') ); $title['tagline'] = ''; if(is_front_page()): $title['title'] = $site_name; $title['site'] = ''; if ( is_catch_phrase_to_frontpage_title() )://キャッチフレーズを追加する場合 $title['tagline'] = trim( get_bloginfo('description') ); endif; elseif(is_singular()): $title['title'] = trim( get_the_title() ); $title['site'] = ''; if ( is_site_name_to_singular_title() )://サイト名を追加する場合 $title['site'] = $site_name; endif; endif; return $title; } endif; add_filter( 'document_title_parts', 'simplicity_title_parts' ); //デフォルトのrel="next"/"prev"を消す remove_action('wp_head', 'adjacent_posts_rel_link_wp_head'); ////ページネーションと分割ページ(マルチページ)タグを出力 function rel_next_prevlink_tags() { //1ページを複数に分けた分割ページ if(is_single() || is_page()) { global $wp_query; $multipage = check_multi_page(); if($multipage[0] > 1) { $prev = generate_multipage_url('prev'); $next = generate_multipage_url('next'); if($prev) { echo '<link rel="prev" href="'.$prev.'" />'.PHP_EOL; } if($next) { echo '<link rel="next" href="'.$next.'" />'.PHP_EOL; } } } else{ //トップページやカテゴリページなどの分割ページの設定 global $paged; if ( get_previous_posts_link() ){ echo '<link rel="prev" href="'.get_pagenum_link( $paged - 1 ).'" />'.PHP_EOL; } if ( get_next_posts_link() ){ echo '<link rel="next" href="'.get_pagenum_link( $paged + 1 ).'" />'.PHP_EOL; } } } if ( is_rel_next_prev_link_enable() ) { //分割ページのみnext/prevを表示 add_action( 'wp_head', 'rel_next_prevlink_tags' ); } //分割ページ(マルチページ)URLの取得 //参考ページ: //http://seophp.net/wordpress-fix-rel-prev-and-rel-next-without-plugin/ function generate_multipage_url($rel='prev') { global $post; $url = ''; $multipage = check_multi_page(); if($multipage[0] > 1) { $numpages = $multipage[0]; $page = $multipage[1] == 0 ? 1 : $multipage[1]; $i = 'prev' == $rel? $page - 1: $page + 1; if($i && $i > 0 && $i <= $numpages) { if(1 == $i) { $url = get_permalink(); } else { if ('' == get_option('permalink_structure') || in_array($post->post_status, array('draft', 'pending'))) { $url = add_query_arg('page', $i, get_permalink()); } else { $url = trailingslashit(get_permalink()).user_trailingslashit($i, 'single_paged'); } } } } return $url; } //分割ページ(マルチページ)かチェックする function check_multi_page() { $num_pages = substr_count( $GLOBALS['post']->post_content, '<!--nextpage-->' ) + 1; $current_page = get_query_var( 'page' ); return array ( $num_pages, $current_page ); } //デフォルトのcanonicalタグ削除 //remove_action('wp_head', 'rel_canonical'); //canonical URLの生成 function generate_canonical_url(){ global $paged; //canonicalの疑問点 //アーカイブはnoindexにしているけどcanonicalタグは必要か? //タグページはnoindexにしているけどcanonicalタグは必要か? //404ページはAll in One SEO Packはcanonicalタグを出力していないようだけど必要か? $canonical_url = home_url(); if (is_home()) { $canonical_url = home_url(); } elseif (is_category()) { $canonical_url = get_category_link(get_query_var('cat')); } elseif (is_page() || is_single()) { $canonical_url = get_permalink(); // } elseif(is_404()) { // $canonical_url = home_url()."/404"; } if ($canonical_url && ( $paged >= 2 || $page >= 2)) { $canonical_url = $canonical_url.'/page/'.max( $paged, $page ).''; } return $canonical_url; } //canonicalタグの取得 //取得条件;http://bazubu.com/seo101/how-to-use-canonical function canonical_tag(){ $canonical_url = generate_canonical_url(); if ( $canonical_url ) { echo '<link rel="canonical" href="'.$canonical_url.'">'.PHP_EOL; } } if ( !function_exists( 'is_noindex_page' ) ): function is_noindex_page(){ return (is_archive() && !is_category()) || //アーカイブページはインデックスに含めない is_tag() || //タグページをインデックスしたい場合はこの行を削除 is_paged() || //ページの2ページ目以降はインデックスに含めない(似たような内容の薄いコンテンツの除外) is_search() || //検索結果ページはインデックスに含めない is_attachment(); //添付ファイルページも含めない } endif; -
2016年1月30日 3:56 PM #35977
Hidekichi
ゲストall in one seoで 投稿タイトルのフォーマットを %post_title% | %blog_title% → %blog_title% | %post_title%に変更したら普通に変わりますよ。
seo.phpを触っても変えられるはずですが、その場合はall in one seo等のタイトルタグを書き換えるプラグインの書き換え部分を停止しないといけないので、どっちかというとseo.phpを修正するより、プラグインで設定したほうが簡単で便利かと思います。
-
2016年1月30日 4:02 PM #35978
Hidekichi
ゲスト送信してもた。
逆に、それらプラグインが作用しているせいで、変更したseo.phpが効かないということはないですかね?
-
2016年1月30日 4:09 PM #35979
hoshi
ゲスト現在、プラグインは入れていないのでそれはないかと思います。
seo.phpをseo.php-bkとかにしてテストしてみたのですが、
それでもタイトルは普通に出続けています。ということはseo.php自体読んでいないのかもしれません。 -
2016年1月30日 4:11 PM #35980
hoshi
ゲストWordPressの方でタイトルが勝手に出るようになっていてその設定が優先されているとかありえますかね?
-
2016年1月30日 5:20 PM #35984
わいひらキーマスターWordpress4.4以上使っている場合は、lib/seo.phpの以下の関数を子テーマのfunctions.phpでオーバーライドして書き直せばそのようにも出来るかもしれません。
function simplicity_title_parts( $title ){ $site_name = trim( get_bloginfo('name') ); $title['tagline'] = ''; if(is_front_page()): $title['title'] = $site_name; $title['site'] = ''; if ( is_catch_phrase_to_frontpage_title() )://キャッチフレーズを追加する場合 $title['tagline'] = trim( get_bloginfo('description') ); endif; elseif(is_singular()): $title['title'] = trim( get_the_title() ); $title['site'] = ''; if ( is_site_name_to_singular_title() )://サイト名を追加する場合 $title['site'] = $site_name; endif; endif; return $title; }ただ、Wordpress自体がタイトルをそのような順番で出力する仕様になっているので、書き直すのにちょっとした工夫は必要かもしれません。
多分、if(is_front_page()):のところで$title['title']と$title['tagline']に入れるあたりを入れ替えればいけると思うのですが、詳しくはdocument_title_partsフックのマニュアルを調べて、自前で書いていただけると助かります。 -
2016年1月30日 5:40 PM #35986
hoshi
ゲストadd_filter( 'pre_get_document_title', 'simplicity_wp_title');これを有効にしたら出来ました!!
皆さん、ご回答ありがとうございます。
そしてお騒がせしましたm(_ _)m -
2016年1月30日 7:26 PM #35989
Hidekichi
ゲストwp_head って do_actionしか書いてないんですよ。
なので変更する時はフックしてねって感じなんです。wp-includes/genetal-templete.php
/** * Fire the wp_head action * * @since 1.2.0 */ function wp_head() { /** * Print scripts or data in the head tag on the front end. * * @since 1.5.0 */ do_action( 'wp_head' ); }
-
-
投稿者投稿
- フォーラム「Simplicityについての質問」には新規投稿および返信を追加できません。