当前位置: 首页 > 知识库问答 >
问题:

WordPress简码总是在页面顶部

高祺
2023-03-14

我使用以下短代码在页面上显示自定义帖子:

add_shortcode( 'page-section', 'page_section_shortcode' );
function page_section_shortcode( $atts ) {
    global $post;
    $post_slug=$post->post_name;
    $a = shortcode_atts( array(
        'post-name' => 'qwerty',
        'bg-color' => 'white'
    ), $atts );
    $post_slug=$post->post_name;
    $post_name = $a['post-name'];
    $query = new WP_Query( array(
        'post_type' => 'page_section',
        'name' => $post_name,
    ) );
    if ( $query->have_posts() ) { ?>
        <?php while ( $query->have_posts() ) : $query->the_post(); ?>
            <div style="background-color: <?php echo $a['bg-color']; ?>" id="<?php global $post; $post_slug=$post->post_name; echo $post_slug; ?>" class="page-section">
                <div class="row">
                    <?php the_content(); ?>
                </div>
            </div>
        <?php endwhile;
        wp_reset_postdata(); ?>

    <?php $myvariable = ob_get_clean();
    return $myvariable;
    }
}

一切都按照我想要的方式工作,我可以在我的自定义帖子中设置内容,并使用一个简短的代码将内容拉入页面。

问题是,用短代码拉进来的内容总是在页面的顶部。在一行中使用多个短代码,他们保持他们的顺序,但是页面上的任何其他内容都显示在底部(在所有短代码内容的下面)。

我已经尝试删除回声建议在另一个stackoverflow帖子,但似乎找不到我做错了什么。

共有2个答案

邓德厚
2023-03-14
function header_notification()
{   
    echo '<div><strong>Any html goes here</strong></div>';
    
}
add_action('wp_head', 'header_notification');
谭成业
2023-03-14

将您的代码替换为此代码。此代码返回生成的html,因此不会在页面顶部出现回音

add_shortcode( 'page-section', 'page_section_shortcode' );
function page_section_shortcode( $atts ) {
    global $post;
    $post_slug=$post->post_name;
    $a = shortcode_atts( array(
        'post-name' => 'qwerty',
        'bg-color' => 'white'
    ), $atts );
    $post_slug=$post->post_name;
    $post_name = $a['post-name'];
    $query = new WP_Query( array(
        'post_type' => 'page_section',
        'name' => $post_name,
    ) );
    $returnhtml = '';
    if ( $query->have_posts() ) { 
        while ( $query->have_posts() ) : $query->the_post();
            global $post; 
            $returnhtml .= '<div style="background-color: '. $a['bg-color'].'" id="'.$post->post_name.'" class="page-section">';
                $returnhtml .= '<div class="row">'.get_the_content().'</div>';
            $returnhtml .= '</div>';
        endwhile;
        wp_reset_postdata();            
    return $returnhtml;
    }
}
 类似资料:
  • 本文向大家介绍jQuery中页面返回顶部的方法总结,包括了jQuery中页面返回顶部的方法总结的使用技巧和注意事项,需要的朋友参考一下 当页面过长时,通常会在页面下方有一个返回顶部的button,总结一下,大概三种实现方法,下面说下各方法及优缺点。 方法一 锚点定位 这种方法设置方便,但缺点是会刷新页面(我是在同事的乐视手机上发现的)。 方法二 window.scrollTo(x,y) 这种方法也

  • 问题内容: 我正在使用下面的循环+ jQuery在下一组页面中加载,并且在第一次单击时有效,但是当加载下一页并单击“较新的帖子”时,它将重新加载整个页面。有任何想法吗? 问题答案: 您正在使用jQuery的方法插入内容,这是的快捷方式,当然可以动态地插入内容。 动态内容需要将事件委派给非动态父对象,而jQuery可以轻松实现

  • 我试图让jquery在每次有人单击导航按钮时移动到页面顶部。 当点击某个按钮时,它会隐藏旧的内容并显示新的内容,但它不会重置浏览器滚动位置,因此最终用户会感到有点困惑。 所以我想添加一些JS命令来解决这个问题,但这只在第一次执行时起作用。 我的代码:

  • 问题内容: 我想知道使用PHP的访问者国家/地区并将其显示在WordPress页面中。但是,当我在WordPress页面中添加PHP代码或发布时,出现错误。我们如何在WordPress Page and Post中添加PHP代码。 问题答案: WordPress默认情况下不会在帖子/页面内容中执行PHP,除非它具有简码。 最快,最简单的方法是使用一个插件,使您可以运行嵌入在帖子内容中的PHP。 在

  • 我正试图做一个项目的投资组合,也有一个小博客。我想为我的项目使用“页面”,为我的博客文章使用普通文章。我正在尝试循环页面,但不断出现错误。 这是我的代码: 我一直得到的错误是: 致命错误:未捕获错误:调用成员函数have_posts()在C:\xampp\htdocs\ivannikolov\wp-内容\主题\port18\index.php:31堆栈跟踪:#0 C:\xampp\htdocs\i

  • 我已经使用file_get_html脚本。我现在把它转移到一个Wordpress网站,它似乎不工作。 只是尝试在管理插件中使用它。 下面的片段: 经过一段时间已经开始:结果:"我在这里!!!" 第一个foreach之后:Results:Nothing 后$html=file_get_html($url);:结果:什么都没有,甚至不显示"结果" 错误消息: 致命错误:未捕获错误:调用 /home/x