How to create tag.php

时间:2014-08-23 作者:Corex

如何创建标记。php模板,将适用于每个包含标签的帖子?

我创建了一些标签,如=食物、饮料和水果

贴子1有食品和饮料标签

帖子2有食物和水果标签

如何为这些标签帖子创建一个页面?

我的代码看起来像这样,但没有显示任何内容。

function get_tags_post($tag_name){
    $original_query = $wp_query;
    $wp_query = null;
    $brand_name= $tag_name;
    $args=array(
        \'posts_per_page\'=>5, 
        \'tag\' => $brand_name
    );
    $wp_query = new WP_Query( $args );
    if ( have_posts() ) : while (have_posts()) : the_post();
        echo \'<li>\';
        single_tag_title();
        echo \'</li>\';
    endwhile; endif;
    $wp_query = null;
    $wp_query = $original_query;
    wp_reset_postdata();
}
如果有人知道代码的哪一部分是错的,请告诉我。

2 个回复
SO网友:Pieter Goosen

不幸的是,您的所有代码都是错误的。你所做的与query_posts, 绝对不能使用。此外,切勿将任何类型的存档页或主页上的主查询替换为自定义查询

要创建标记页,只需复制索引即可。php,并将其重命名为标记。php。这是捆绑主题“Twenty14’s tag”的副本。php只是给你一个想法。

<?php
/**
 * The template for displaying Tag pages
 *
 * Used to display archive-type pages for posts in a tag.
 *
 * @link http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Fourteen
 * @since Twenty Fourteen 1.0
 */

get_header(); ?>

    <section id="primary" class="content-area">
        <div id="content" class="site-content" role="main">

            <?php if ( have_posts() ) : ?>

            <header class="archive-header">
                <h1 class="archive-title"><?php printf( __( \'Tag Archives: %s\', \'pietergoosen\' ), single_tag_title( \'\', false ) ); ?></h1>

                <?php
                    // Show an optional term description.
                    $term_description = term_description();
                    if ( ! empty( $term_description ) ) :
                        printf( \'<div class="taxonomy-description">%s</div>\', $term_description );
                    endif;
                ?>
            </header><!-- .archive-header -->

            <?php
                $counter = 1; //Starts counter for post column lay out

                // Start the Loop.
                while ( have_posts() ) : the_post();

        ?>
                <div class="entry-column<?php echo ( $counter%2  ? \' left\' : \' right\' ); ?>">

                    <?php get_template_part( \'content\', get_post_format() ); ?>

                </div>  

        <?php   

            $counter++; //Update the counter

            endwhile;

        pietergoosen_pagination();

        else :
                    // If no content, include the "No posts found" template.
                get_template_part( \'content\', \'none\' );

                endif;
            ?>
        </div><!-- #content -->
    </section><!-- #primary -->

<?php
get_sidebar( \'content\' );
get_footer();
也可以查看以下链接

EDIT

为了对代码进行注释,您应该正确缩进代码。因为你的代码很难阅读。调试也很困难。

去读一读coding-standards/php/#indentation 有关更多信息

SO网友:Miro Esteban Sokool DeFolie

如果您想使用特定的wp\\u查询(顺便说一句,这绝对没有错,如果您知道自己在做什么,并且使用了安全措施,可以使用它-例如尽量不要经常使用$\\u GET,如果您确实尝试去掉\\u tags(),如果您只想传递一个数字,可以在它前面使用(int))。

您可以使用索引中的标记查询存档。php(如果您只想为标准wp帖子提供一个通用模板)或通过创建标记。php位于主模板文件夹root中(template index.php和其他模板文件所在的位置),与index完全相同。php,但在查找以下页面时激发:www.webage.com/tag/some-tag-name

首先,使用get\\u queryed\\u object();获取实际对象。最好将其应用于变量以保存一些传输:

$qObject = get_queried_object();
如果你在索引上工作。php创建一个变量来区分其标记是否存档是一种很好的做法,以便您以后可以使用它:

$isArchiveTag = (($qObject->taxonomy == \'post_tag\')?true:false);
如果您正在处理标记,则不必创建它。php。

现在,如果您使用的是wp\\u query,它应该如下所示:

$postArgs = array(      
    \'post_type\'    => \'post\',
    \'showposts\'    => -1,
    \'post_status\'  => \'publish\',
    \'parent\' => 0,
    \'hide_empty\' => true,
    \'orderby\'   => \'date\',
    \'order\' => \'DESC\',
    \'tag\' => (($isArchiveTag)?$qObject->slug:\'\')            
);
    
$query = new WP_Query($postArgs);
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $currentPost = get_post(); // if you want to declare variable to hold post data
            //enter your code code here
    }
}
wp_reset_postdata();
要获取活动标记标题,可以使用

single_tag_title( \'\', false );

$qObject->name;
获取所有标记作为wp\\u对象并将其应用于变量使用

$tags = get_terms(\'post_tag\');
玩得开心:)

结束

相关推荐

wp_kses vs wp_strip_all_tags

除了为允许的HTML标记提供粒度控制之外wp_kses 提供超过wp_strip_all_tags? 基本上,如果我使用wp_kses 并将其设置为not 允许任何HTML或协议,它是否比仅使用wp_strip_all_tags?