web-dev-qa-db-ja.com

イベントが簡単にできるプラグイン - 重複したタイトルタグ

私はEvents Made Easyプラグインを使ってクライアントのイベントを処理します。最近私のサイトで問題をスキャンしているときに、 "events"ページに重複したtitleタグがあると、同じ "Events - Websitename" <title>が出力され、そのイベントに固有のものではないことがわかりました。これが重複したタイトルタグの原因となるだけでなく、<?php add_theme_support('title_tag'); ?>を使ってこれを機能させる方法を見つけることは非常に困難です。 Events Made Easyのプラグインサイト に、それらはうまくいく回避策を投稿しました、しかしそれは本質的に私が使用しているYOASTによって実行されたSEOを台無しにします。

プラグインWebサイトで提案されている解決策はこれをfunctions.phpに追加することです。

remove_action( 'wp_head', '_wp_render_title_tag', 1 );

それからheader.phpの最後の</head>タグの直前にWPを通した "title_tag"サポートを台無しにする以下を追加します:私は以下を追加することになっています:

<?php if (!eme_is_events_page()) { ?>
    <title><?php echo get_the_title().' | '.get_bloginfo( 'name' );?></title>
<?php }?>

この解決策は特にイベントページで機能しますが、Yoast SEOだけでなく私のテーマのtitle_tagサポートを使用することもできません。

基本的に、この解決策はイベントページに対してのみ機能し、他のページには一般的なタイトルが適用されます。 YOAST SEOがこれらのタグに変更を加えることができないままにしているbloginfoページタイトル。私にとっては、これは基本的に "title_tag"サポートが利用可能になる前の段階に戻ってきており、これは厄介な作業です。

この問題を解決するために、いくつかの条件付きPHPを試してみましたが、ホイールを作り直そうとしているようです。

<?php wp_head(); ?>
        <?php if (eme_is_events_page()) { ?>
            <title><?php echo get_the_title().' - '.get_bloginfo( 'name' );?></title>
        <?php } elseif (is_front_page()) { ?>
            <title><?php echo get_bloginfo(); ?></title>
        <?php } elseif(is_page()) { ?>
            <title><?php echo get_the_title().' - '.get_bloginfo( 'name' );?></title>
        <?php } ?>

しかし、私自身の方法を使用して、私はすべての可能なページ、カスタムページテンプレート、タグページなどを説明しなければなりません。少し時代遅れに思えます。私は私のテーマでtitleタグのサポートを使い続けたいと思い、実際に私のheader.phpに<title></title>を配置することに戻したくない、この問題についての何らかの意見を得たいと思います。

Events Made Easyプラグインに慣れていない人のために、プラグイン自体は私がプラグイン設定内に追加のヘッダを入力するための場所を持っています。これは私にとってタイトルを動的にするために彼らの "プレースホルダー"の使用を必要とします。 Events Made Easy Settings

そのため、プラグインの設定自体により、従来の方法の中には機能しないものがあります。

1
ben.kaminski

私はEvents Made Easyバージョン2.0.35でこれに続くコードを試みます。
あなたは解決策に近づいていたようです。あなたはすべてのレンガを見つけましたが、あなたはそれらを組み立てることに成功していません。

これがイベントページで、タイトルの設定がバックエンドに設定されている場合は、このコードを試して自動タイトルを無効にします。

add_action("wp_head", function () {


    if (eme_is_single_event_page()) {

        $extra_headers_format = get_option('eme_event_html_headers_format');

        if (!empty($extra_headers_format)) {
            remove_action( 'wp_head', '_wp_render_title_tag', 1 );
        }

    }


}, 0); // priority 0 to be launched before the call of "_wp_render_title_tag"
1
mmm