web-dev-qa-db-ja.com

ページスラッグを配列で使う

カスタム投稿のリストを呼び出すときに、分類法としてページスラグを使用したいです。

これは動作します:

<?php $page_slug = basename(get_permalink()); ?>
<?php echo  $page_slug; ?>

ページに "december-2017"が表示されます。

これもそうです:

<ul>
    <?php 
        $args = array(
            'post_type' => 'nomination',
            'post_status' => 'draft',
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'month_category',
                    'field' => 'slug',
                    'terms' => 'december-2017',
                )
            )
        );
        $the_query = new WP_Query( $args ); 
    ?>
    <?php if ( $the_query->have_posts() ) : ?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <li>
        <?php the_terms( $post ->ID, 'dealership_category', '', '', '' ); ?><br>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br> 
        Submitted: <?php echo get_the_date( 'd/m/Y' ); ?>
    </li>
    <?php endwhile; ?>
    <?php wp_reset_postdata(); ?>
    <?php else : ?>
    <li>Nothing found.</li>
    <?php endif; ?>
    </ul>

それで、なぜ私はこれを働かせることができません:

<ul>
<?php $page_slug = basename(get_permalink()); ?>

    <?php
        $args = array(
            'post_type' => 'nomination',
            'post_status' => 'draft',
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'month_category',
                    'field' => 'slug',
                    'terms' => '$page_slug',
                )
            )
        );
        $the_query = new WP_Query( $args ); 
    ?>
    <?php if ( $the_query->have_posts() ) : ?>
    <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
    <li>
        <?php the_terms( $post ->ID, 'dealership_category', '', '', '' ); ?><br>
        <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br> 
        Submitted: <?php echo get_the_date( 'd/m/Y' ); ?>
    </li>
    <?php endwhile; ?>
    <?php wp_reset_postdata(); ?>
    <?php else : ?>
    <li>Test not working.3</li>
    <?php endif; ?>
    </ul>

ページに「Test not working.3」と表示されます。私はPHPが得意ではないので混乱しています。

1
user6744245

あなたの納税申告書では、変数ではなく文字列を検索しています。現在一致するのは、その用語が文字通り "$ page_slug"である場合だけです。変数としてパースするためには、$page_slugを囲む一重引用符を削除する必要があります。

'terms' => '$page_slug'

する必要があります:

 'terms' => $page_slug,
2
Xhynk