我正在编写一些php来查询我的wordpress博客数据库,并在我的主页上显示wordpress环境之外的最新帖子。
我不是非常精通php,但我能够显示最新的博客标题,以及帖子内容。我想做的是让缩略图成为帖子的可点击链接。我如何获得帖子的链接?我也想显示摘录而不是整个帖子 - 但是使用post_excerpt以与post_title相同的方式,post_content,似乎不起作用。
// ...Connect to WP database
$dbc = mysql_connect(XXX,XXX,XXX);
if ( !$dbc ) {
die( 'Not Connected: ' . mysql_error());
}
// Select the database
$db = mysql_select_db('wrd_2ikhd5ho53');
if (!$db) {
echo "There is no database: " . $db;
}
// ...Formulate the query
$query = "
SELECT post_title,post_content,UNIX_TIMESTAMP(post_date) AS post_date_unix, ID
FROM `wp_posts`
WHERE `post_status` = 'publish'
AND `post_password` = ' '
AND `post_type` = 'post'
ORDER BY `wp_posts`.`post_date` DESC
";
// ...Perform the query
$result = mysql_query( $query );
// ...Check results of the query and terminate the script if invalid results
if ( !$result ) {
$message = '<p>Invalid query.</p>' . "\n";
$message .= '<p>Whole query: ' . $query ."</p> \n";
die ( $message );
}
// Init a variable for the number of rows of results
$num_rows = mysql_num_rows( $result );
$row = mysql_fetch_array( $result, MYSQL_ASSOC );
// Init var for DATE of the post
$post_date = date( "l, F jS, Y ", $row['post_date_unix'] );
// Init var for TITLE of the post
$post_title = $row['post_title'];
// Init var for CONTENT of the post
$post_content = $row['post_content'];
$post_excerpt = $row['post_excerpt'];
// Init var for Excerpt of the post
// Print the number of posts
echo "$post_title";
echo "$post_date";
// Free the resources associated with the result set
if ( $result ) {
mysql_free_result( $result );
mysql_close();
}
?>
要引用的网站是http://www.uniconutrition.com
谢谢你们
答案 0 :(得分:6)
使用 WordPress数据库图层比使用它更容易。见http://codex.wordpress.org/Integrating_WordPress_with_Your_Website
基本上:
<?php
require('/the/path/to/your/wp-blog-header.php');
?>
<?php
$posts = get_posts('numberposts=1');
foreach ($posts as $post) : start_wp(); ?>
<?php the_date(); echo "<br />"; ?>
<?php the_title(); ?>
<?php the_excerpt(); ?>
<?php
endforeach;
?>
或者,始终有RSS 从WordPress中获取一个项目,标题和摘录。
<强> Developer's Guide - Google AJAX Feed API - Google Code 强>
<html>
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("feeds", "1");
function initialize() {
var feed = new google.feeds.Feed("http://fastpshb.appspot.com/feed/1/fastpshb");
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("feed");
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var div = document.createElement("div");
div.appendChild(document.createTextNode(entry.title));
container.appendChild(div);
}
}
});
}
google.setOnLoadCallback(initialize);
</script>
</head>
<body>
<div id="feed"></div>
</body>
</html>
答案 1 :(得分:0)
就摘录而言,您不是SELECT
在查询中。将查询的开头更改为:
SELECT post_title, post_content, post_excerpt,
UNIX_TIMESTAMP(post_date) AS post_date_unix, ID
至于帖子的链接,我不是100%确定你可以在不通过WordPress机器的情况下获得“漂亮可打印”的链接。 guid
表格中的wp_posts
列下提供了一个短链接样式网址,但WP文档声称,如果禁用了非常永久链接,则可能无法显示该网址。由于你知道帖子的ID(它是你查询的一部分),你可以使用WordPress函数来获取链接。有关详细信息,请参阅get_permalink文档页面。