2016-08-08 13 views
0

Wordpressの新機能です。私は昨日MAMPにWordpressローカルサーバーをセットアップしました。私は自分のテーマを現在構築しようとしています。問題は、私がthe loopをしようとするたびに、私はどんな内容も得ていないということです。私のコードは、私はちょうどPHPを使用する場合は動作しますが、問題はカスタムですWordpressの関数は使用できません(すなわちhave_posts()Wordpressの機能はカスタムテーマでは機能しません

もう一つの投稿はwp-blog-headerが必要です示唆しているが、どちらもうまくいきません。私のコードは次のとおりです:

<?php 

define('WP_USE_THEMES', false); 
require('../../../wp-blog-header.php'); 

if(have_posts()) : 
    echo 'testing' 

else : 
    echo 'testing' 
endif; 


?> 

現在のところ画面に何も表示されません。

wp-blog-header.phpは次の場所にあります。wordpress -> wp-blog-header.php

マイカスタムテーマは次の場所にあります。wordpress -> wp-content -> themes -> firstTheme -> index.php

すべてのヒントが理解されています。

答えて

1

さて、あなたはPHPを書いているし、あなたのコードは

if(have_posts()) : 
    echo 'testing' 
else : 
    echo 'testing' 
endif; 

私は、これはPHPで有効であることが可能かどうかはわかりませんが含まれています。私は

if(have_posts()) 
    echo 'testing'; 
else 
    echo 'testing'; 

もPHPでifelse構文を参照してください期待したいです。

+0

これは機能しています。ありがとう! – user5854440

0

独自のカスタムテーマを作成するには、適切なWordPress関数を使用する必要があります。 たとえば、requireの代わりにx-pathディープ(WP-Coreパースペクティブから欲しがらない)の場合は、ファイルをテーマのルートに置く必要があります。 のような:このため

`get_template_part('name-of-file-to-include-without-php-ending');` 

理由は、WordPressのコーデックスは、子テーマ機能の使用を提案しているという事実です。

get_template_part('');関数はいくつかのチェックを行います。子供のテーマがインストールされている場合など

質問:なぜその定数を定義しますか?

すべての定数は、wp-config(ルートフォルダ)内に存在する必要があります。

また、投稿を繰り返すわけではありません。あなたのコードは、この時点では書いている時点で、投稿があるかどうかしか見えませんが、何もしません。投稿を処理して表示するには、while機能を追加する必要があります。だから、

、(あなたのloop.phpまたはあなたがそれらを表示したいあなたのテーマでの場所で)ん:

<?php if(have_posts()) : ?> 
    // The while added 
    <?php while (have_posts()) : the_post(); ?> 

     // Your template tags here: e.g. the_author(); 
     <h2><?php the_author(); ?></h2> 
     <h3>the_title();</h3> 
     etc... 
    <?php endwhile?> 
<?php endif; ?> 

最後の一つです:WordPressのファイルはに存在すべきいくつかの規則を、持っていますテーマフォルダ。たとえば、すべてのテーマにはfunctions.phpがなければなりません。メニューやウィジェットなどを配置します。

テーマを構築するための最も人気のあるタグは以下のとおりです。

get_header(); 

確かに、あなたはあなたのテーマでheader.phpファイルを持っている必要があります。繰り返しますが、WordPressはこれらのファイルを正確に検索し、他の名前付けは許可されません。

get_footer(); 

あなたのテーマフォルダにはfooter.phpがあります。

詳細については、WordPressコーデックス>テンプレート部品などを参照してください。 https://codex.wordpress.org/Theme_Development#Template_Files

私は非常にあなたのテンプレートのためのWordPressのコア機能を使用して、それらを無視し、 '古典的な' PHPを行うアドバイスインクルード/必要はあなたにダークサイドを導き、成功しないでしょう。

あなたが使用しているテンプレートパーツを見るには、「What What File」が良いプラグインです。デフォルトのテーマをつかみ、そのプラグインをインストールして、WordPressが何をしているのかを知るために、管理者バーに表示される内容を調べます。

私のループの抜粋ですが、私のテーマではブートストラップを使っています。

<?php if(have_posts()) : ?> 
<?php while (have_posts()) : the_post(); ?> 
<?php if(is_front_page() || is_page() || is_single()) : ?> 
     <div class="row row-content"> 
      <div class="content col-xs-12 col-sm-12 col-md-12 col-lg-12"> 
       <?php the_content(); ?> 
      </div> 
     </div> 
    <?php // category.php, archive.php, search.php ?> 
    <?php elseif(is_category() || is_archive() || is_search()) : ?> 
     <div class="row row-excerpt"> 
      <div class="thumbnail-box col-lg-4"> 
      <a href="<?php the_permalink(); ?>" class="preview-image-link"> 

       <?php 
        // Thumbnail und Post Auszug 
        if(has_post_thumbnail()) { 
         the_post_thumbnail('thumbnail'); 
        } 
       ?> 
       </a> 
      </div> 
      <div class="text-details-box col-lg-8"> 
       <div class="row row-excerpt-text"> 
        <div class="excerpt col-lg-12"> 
         <?php the_excerpt(); ?> 
        </div> 
       </div> 
       <div class="row row-tags row-read-more"> 
        <div class="tags col-lg-8"> 
         <?php the_tags('<ul class="tag-list"> 

        </div> 
        <div class="read-more-boxcol-md-4 col-lg-4"> 
         <a href="<?php the_permalink(); ?>" class="read-more-btn"> 
          <span class="read-more-btn-text">></span> 
         </a> 
        </div> 
       </div> 
      </div> 
     </div> 
     <?php endwhile; ?> 
<?php endif; ?> 
0

私はいくつかのWordPressサイトを構築する際にもこの問題を発見しました。 PhPプラグイン(Insert PhP)をインストールした後、私の問題は解決されました。

一度インストールされると、[insert_php]と[/ insert_php]に変更され、コードが機能しました。

関連する問題