查询页面:保留页面格式

时间:2012-06-19 作者:xyz

有人知道如何获取此查询(或其他查询)以保留页面格式吗?谢谢

<?php
$my_postid = 663;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters(\'the_content\', $content);
$content = str_replace(\']]>\', \']]>\', $content);
echo $content;
?>
编辑

我没有找到改变上述查询以尊重原始页面格式的方法,但我确实找到了一个不同的查询。

请注意

<div id="my-id" class="format_text"> 
在以下查询中。

“format\\u text”将查询输出格式化为原始页面格式。

<?php 
// The Query
$the_query =new WP_Query(\'pagename=my-page-name\');
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();

?>
<div id="my-id" class="format_text">
    <h2 class="page-title"><?php the_title(); ?></h2>
    <?php the_content(); endwhile; ?>
</div>
<?php

// Reset Post Data
wp_reset_postdata();
?> 

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

你在拿苹果和桔子做比较。二者都queries 执行完全相同的操作,但通过不同的代码呈现。

您的查询:

<?php
$my_postid = 663;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters(\'the_content\', $content);
$content = str_replace(\']]>\', \']]>\', $content);
echo $content;
?>
只需从数据库中提取一些内容并将其直接转储到屏幕上即可。您介绍的另一个查询示例:

<?php 
// The Query
$the_query =new WP_Query(\'pagename=my-page-name\');
// The Loop
while ( $the_query->have_posts() ) : $the_query->the_post();

?>
<div id="my-id" class="format_text">
    <h2 class="page-title"><?php the_title(); ?></h2>
    <?php the_content(); endwhile; ?>
</div>
<?php

// Reset Post Data
wp_reset_postdata();
?> 
也会从数据库中提取一些内容,但它会通过标准运行WordPress loop 并向内容添加样式。它不是;保留(&Q);造型。

我的意思是,您的代码片段包含一些内容,并通过the_content 过滤,并将结果打印到屏幕上。

...
$content = apply_filters( \'the_content\', $content );
...
echo $content;
另一个代码片段做了完全相同的事情Thethe_content() 函数是一组代码的包装器,这些代码从数据库中获取内容,并通过the_content 过滤,并将结果打印到屏幕上。

...
$content = apply_filters( \'the_content\', $content );
...
echo $content;
它们的执行与您的不同之处在于使用了标准循环功能。下面是我如何重写您的代码,以便在其他代码中使用相同类型的循环函数和模板:

<?php
$my_postid = 663;
$content_post = get_post( $my_postid );
setup_postdata( $content_post );        // Set up necessary $post globals
?>

<div id="my-id" class="format_text">
    <h2 class="page-title"><?php the_title(); ?></h2>
    <?php the_content(); ?>
</div>

<?php
wp_reset_postdata();                    // Reset $post globals to what they were before
呼叫setup_postdata() 将填充全局$post 所选帖子信息的变量。二者都the_title()the_content() 当他们提取信息、通过过滤器运行该全局变量并将数据打印到屏幕上时,请引用该全局变量。

呼叫wp_reset_postdata() 将重置全局$post 变量设置为在我们开始处理它之前为当前请求设置的任何值。

通常,你只需要打电话the_title()the_content() 从循环内部,但如果设置全局$post 提前改变,你仍然可以让他们工作。

SO网友:HungryCoder

我想你的问题不是很清楚。你没有做出足够的努力来解释这个问题,因此没有人能站出来帮助你。

正如您在评论中所说的,您正试图保留行高、间距、字体大小等,所有这些都与css有关。这些与wp查询函数无关。由于您担心保留格式,我猜您的意思是某些内容改变了格式。如果是这样的话,css就是那个恶魔(对你来说)。您可以编写新的css来覆盖任何现有的css。如果你的班级format_text 如果有覆盖格式的css,则可以从标记中删除该类。

您也正在触发the_content 从代码中挂钩。如果该筛选器正在更改格式,则可以删除以下行:

$content = apply_filters(\'the_content\', $content);

但是,请注意,它还可能删除由以下触发的功能实现的其他功能the_content 滤器

我试图根据假设给出建议,因为问题还不清楚。这可能对你有帮助,也可能没有帮助。如果没有任何帮助,请发布有关问题和场景的更清楚的详细信息。

祝你好运

相关推荐

如何在class-wp-query.php中跟踪核心函数is_page()&is_Single上的通知警告

在我的生产站点上,我的这些产品已经超支了:PHP Notice: Trying to get property of non-object in /public_html/wp-includes/class-wp-query.php on line 3728 PHP Notice: Trying to get property of non-object in /public_html/wp-includes/class-wp-query.php on line 3730 PHP No