0

次のように、Wordpress サイトにカスタムの書き換えルールを追加しました。

add_rewrite_rule( 'register/bronze', 'index.php?action=register&type=2', 'top' );

次に、template_redirectアクション内でクエリ文字列変数をチェックしaction、次のようにインクルードを読み込みます。

$action = get_query_var( 'action' );

if( $action == "register" ) {
    include( BG_FILE_PATH . '/templates/register-brand.php' );
    exit;
}

これはすべて正常に機能し、カスタム テンプレートが表示されますが、ページ タイトルは「ページが見つかりません | サイト名」と表示されます。

カスタム テンプレートからページ タイトルを設定する方法はありますか? これらのページはサイトの運営に不可欠であるため、Wordpress ページとして設定しないようにしています。管理者の 1 人がページ設定を変更したり、ページを完全に削除したりしたくありません。

どんな助けでも大歓迎です。

4

2 に答える 2

8

WordPress はまだ 404 をスローしているため、タイトルを上書きしている可能性があります (firebug を使用して確認できます)。

WordPress は通常、テンプレート リダイレクトにファイルを含めると 404 をスローします。

次のようなコードを使用してヘッダーをリセットする必要があります。

global $wp_query;
$wp_query->is_404 = false;
status_header( '200' ); //if status_header doesn't work, try header("HTTP/1.1 200 OK")

//now that you reset the 404, you can proceed with your include
$action = get_query_var( 'action' );

    if( $action == "register" ) {
        include( BG_FILE_PATH . '/templates/register-brand.php' );
        exit;
    }

これにより、ステータス ヘッダーがリセットされ、インクルード ファイルのタイトルが正常に表示されるようになります。JavaScriptは必要ありません:)

于 2014-02-27T13:17:38.753 に答える
0

これを行うには、小さな JavaScript を挿入します。

<script>
$(document).ready(function() {
    document.title = 'your title here';
});
</script>

タイトルを動的にしたい場合は、次のものに置き換えます。

document.title = <?php echo 'your dynamic title here'; ?>;

于 2013-09-04T06:01:18.807 に答える