web-dev-qa-db-ja.com

wp_title()は404 - 外部インストールを示しています WP

テーマのheader.phpからのwp_title()は "Page not found"を示します。またbody_classはWord "error404"を表示します。

  • WPブログはsite.com/blog/にインストールされています
  • 投稿はWPインストールの外側にレンダリングされます。具体的には、wildcard-subdomain.site.com/articles/post-slugに従います。

私はページに追加しました:

define('WP_USE_THEMES', false);
require( ROOT_DIR . '/blog/wp-blog-header.php');
  • 私はget_header()get_footer()を追加しました、そしてそれはうまく働きます
  • テーマのfunctions.phpファイルにadd_theme_support( 'title-tag' );を追加しました
  • フックは問題なく動作し、プラグインもロードされています

投稿のタイトルが表示されないのはなぜですか。

1
AndreiD

代わりに外部からの問い合わせをすることもできます。

<?php
define('WP_USE_THEMES', false);
global $wpdb;
require(ROOT_DIR.'/blog/wp-load.php');
query_posts('showposts=1');

get_header();

try{
    $args = array('post_type' => array('post'), 'posts_per_page' => -1);
    $qry = null;
    $qry = new WP_Query($args);
    if($qry->have_posts()){
        while($qry->have_posts()){
            $qry->the_post();
            $theTitle = get_the_title();
            print $theTitle.'<br>';
        }
        wp_reset_query();
    }else{
        print 'no records found';
    }
}catch(Exception $e){
    print $e->getMessage();
}

get_footer();
?>
1
Dan Kinchen

タイトルを表示して適切なbody_classを持つことができるようにするために、wordpressは最初にURLを解析して、どのタイプのページが一般的に参照されているか、そしてそれがどのページであるかを見つけなければなりません。あなたはwordpressに意味があるだろうurlデータで$_SERVER変数を設定することができます。

....または@ danの答えのようにすべてを設定するために明示的なクエリを実行します。

0
Mark Kaplun