Stack的伟大人物,我再次需要您的帮助。
我目前有一个外部网站,它从包含WordPress安装的子文件夹中提取博客内容,例如:
网站A:外部静态网站网站B:WordPress安装
我使用以下代码在网站A的主页上发布了帖子。
WordPress呼叫:
<?php
//db parameters
$db_username = '###';
$db_password = '###';
$db_database = '###';
$blog_url = 'http://www.website.com/blog/';
//connect to the database
mysql_connect('###', $db_username, $db_password);
@mysql_select_db($db_database) or die("Unable to select database");
//get data from database -- !IMPORTANT, the "LIMIT 5" means how many posts will appear. Change the 5 to any whole number.
$query = "Select * FROM wp_posts WHERE post_type='post' AND post_status='publish' ORDER BY id DESC LIMIT 1";
$query_result = mysql_query($query);
$num_rows = mysql_numrows($query_result);
//close database connection
mysql_close();
// html page starts after
?>
博客文章包含:
<div class="contentBox">
<?php
for($i=0; $i< $num_rows; $i++){
//assign data to variables, $i is the row number, which increases with each run of the loop
$blog_date = mysql_result($query_result, $i, "post_date");
$blog_title = mysql_result($query_result, $i, "post_title");
$blog_content = mysql_result($query_result, $i, "post_content");
//$blog_permalink = mysql_result($query_result, $i, "guid"); //use this line for p=11 format.
$blog_permalink = $blog_url . mysql_result($query_result, $i, "post_name"); //combine blog url, with permalink title. Use this for title format
//format date
$blog_date = strtotime($blog_date);
$blog_date = strftime("%b %e", $blog_date);
//the following HTML content will be generated on the page as many times as the loop runs. In this case 5.
?>
<div class="post"></div>
<img src="img/headers/news-from.png" /><br />
<p class="blogName"><a href="http://www.website.com/blog"><?php echo $blog_title; ?></a></p>
<p style="margin-top: -10px; margin-right: 10px;"><?php echo $blog_content;?></p>
<p>Submitted on: <span class="green"><?php echo $blog_date; ?></span></p>
<p><a href=”<?php echo $blog_permalink; ?>”>Read Full Post</a></p>
<?php
} //end the for loop
?>
</div>
这工作得很好,它提取了必要的帖子并显示出来,格式都很好等等。我的问题是,我真的需要限制提取的字符数,目前,这是整个帖子的回声,我只需要回声帖子的前15个字符。任何想法都将不胜感激。
您可以通过回显以下内容来限制字符输出。
发件人:
<p style="margin-top: -10px; margin-right: 10px;"><?php echo $blog_content;?></p>
收件人:
<p style="martin-top: -10px; margin-right: 10px;"><?php echo substr($blog_content,0,40); ?></p>
这似乎是解决复杂问题的简单方法,但为什么不使用substr
来精简帖子呢??
你甚至可以通过设置一个单独的变量来做到这一点?
例如
$trimmed_post = substr($blog_content, 0,15);
所做的一切都是创建一个新的变量来显示在页面上,该变量从$blog_content
变量的第0个字符开始,在15个字符后截止。
一种方法是删除行
echo $blog_content;
并将其替换为
echo substr(strip_tags($blog_content), 0, 50);
将50改为您想要的长度。