在自定义内容模板中获取帖子URL

时间:2020-09-14 作者:user3170899

这应该是件很容易的事,但它让我很头痛。

我创建了一个名为content sticky的内容模板。php。

在那里添加了所有代码

<article id="post-<?php the_ID(); ?>" <?php post_class(\'pinned-post teal\'); ?>>
    <div class="pinned-post-image">
        <?php my_webpage_post_thumbnail(); ?>
    </div>

    <header class="entry-header pinned-post-content">
        <?php
        if ( is_singular() ) :
            the_title( \'<h1 class="entry-title">\', \'</h1>\' );
        else :
            the_title( \'<h2 class="entry-title"><a href="\' . esc_url( get_permalink() ) . \'" rel="bookmark">\', \'</a></h2>\' );
        endif;

        if ( \'post\' === get_post_type() ) :
            ?>
            <p>
            <?php
            my_webpage_posted_on();
            my_webpage_posted_by();
            ?>
            </p>

            <?php
            the_excerpt();
            ?>
        <?php endif; ?>
    </header><!-- .entry-header -->

    <a class="pinned-post-read-more rust" href="<?php 
    global $post;
    esc_url( get_permalink(($post->ID) ) );
    ?>">Read More</a>

</article><!-- #post-<?php the_ID(); ?> -->
是的,我知道,我不应该把\\u摘录放在标题中,这是另一天的变化。

我不能去工作的是获取帖子的永久链接,它返回为空!(已尝试solutions from here)

enter image description here

阅读后,我尝试了以下示例the api:

    <a class="pinned-post-read-more rust" href="<?php esc_url( get_permalink(the_ID()) )?>">Read More</a>
它回来了href="1234" 哪个是正确的ID而不是永久链接,那么如何传递正确的ID而不是返回URL呢?

我想是因为它是一根绳子?所以我用int(int) the_ID(), 相同的结果。。。

我迷路了。

我也没有真正学习php,所以这可能是一个原因,我只是继续学习C、Python、Java和Javascript方面的知识

顺便说一句,我就是这样实现这个模板的

    $sticky = get_option( \'sticky_posts\' ); // Get all sticky posts

    $args = array(
            \'posts_per_page\' => 1,
            \'post__in\'  => $sticky,
            \'ignore_sticky_posts\' => 1
    );
    $query = new WP_Query( $args );

    if ( $query->have_posts() ) : ?>

        <div id="pinned-posts">
            <div class="tab-header" id="pinned-posts-tab-header">Pinned Posts</div> <?php

            if ( is_home() && ! is_front_page() ) :
                ?>
                <header>
                    <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
                </header>
                <?php
            endif;

            /* Start the Loop */
            while ( $query->have_posts() ) :
                $query->the_post();

                /*
                * Include the Post-Type-specific template for the content.
                * If you want to override this in a child theme, then include a file
                * called content-___.php (where ___ is the Post Type name) and that will be used instead.
                */
                get_template_part( \'template-parts/content-sticky\', get_post_type() );

            endwhile;

        else:

            get_template_part( \'template-parts/content\', \'none\' );
        
        ?> </div> <?php
        wp_reset_query();
        endif;

1 个回复
最合适的回答,由SO网友:Pixelsmith 整理而成

您需要切换get_permalinkthe_permalinkecho esc_url(get_permalink).

get_permalink

the_permalink

相关推荐

Problem with permalinks

我已经更改了类别的基本名称,现在它是“博客”,工作正常。但当我通过/blog/%category%/%postname%/更改结构时。显示404。如果我删除结构中的blog,它会再次工作,但我想使用blog word。问题出在哪里?非常感谢。