如何将php创建的内容放入目标特定的div?

时间:2019-09-11 13:03:47

标签: php wordpress function

Noob在这里!我想在wordpress主页上运行一个简单的后循环。如果在我的functions.php文件中编写循环,然后加载主页,则查询结果将显示在主页顶部。

现在,我想在特定的div中查看循环的结果。这样做的原因是,我想先对大多数网站内容使用pagebuilder,然后再查看循环。

TLDR;如何使由php函数创建的内容显示/加载到特定的div容器中?甚至有可能吗?

我尝试创建div并将函数的简码放入其中,但wordpress甚至不允许我保存更改。

在functions.php中:

function show(){

$args = array(
    'post_type' => 'attachment',
    'post_mime_type' => 'image',
    'orderby' => 'post_date',
    'order' => 'desc',
    'posts_per_page' => '30',
    'post_status'    => 'inherit'
     );

$loop = new WP_Query( $args );

while ( $loop->have_posts() ) : $loop->the_post();

$image = wp_get_attachment_image_src( get_the_ID() );
echo'<div><div class="numbertext">1</div>';
echo $images = wp_get_attachment_image( $query_images->posts->ID, 'full' );
echo'<div class="title">'; 
the_title(); 
echo'</div></div>';
endwhile; 
};
add_shortcode( 'imgshow', 'show' );

然后在Pagebuilder中:

<div id="imgcontainer">[imgshow]<div>

因此,对于查询找到的每个img,我希望循环创建一些div框,其中包含图像及其标题。

1 个答案:

答案 0 :(得分:0)

您走在正确的轨道上,但是您的短码语法有些偏离。使用短代码要记住的一件事是,您始终必须返回内容,而不是回显它。我还没有测试过,但是应该可以。

 const FlagsDialog = (props) => {
      const {
        classes,
        handleClose,
        showFlagsDialog,
      } = props;

      const selectLang = (id) => {
        console.log(id);
//OR e.target.getAttribute("id")
      };

      return (
        <Dialog
          open={showFlagsDialog}
          onClose={handleClose}
          aria-labelledby="alert-dialog-title"
          aria-describedby="alert-dialog-description"
        >
          <Button onClick={() => this.selectLang(id)} id="en">English</Button>
          <Button onClick={selectLang} id="en">English</Button>
        </Dialog>
      );
    };