我创建了一个Wordpress插件,可以检测帖子何时发布,并在phpBB安装中创建主题。
由于插件的一部分,WordPress的文章的摘录被传递到phpBB的SQL数据库后的文本,跟着几个换行符和“更多”链接是一个固定链接到WordPress的帖子。
摘录+链接创建如下:
$wparticle_excerpt = get_the_excerpt()."<br /><br /><a href=\"".get_permalink()."\" title=\"".get_the_title()."\" class=\"postlink\">Click here to read the full article →</a>";
然后它被逃脱了:
$wparticle_excerpt = $con->real_escape_string( $wparticle_excerpt );
然后使用以下查询将其写入SQL数据库:
$sql_write_post = "INSERT INTO phpbb_posts (
topic_id,
forum_id,
poster_id,
icon_id,
post_time,
post_approved,
post_reported,
enable_bbcode,
enable_smilies,
enable_magic_url,
enable_sig,
post_subject,
post_text,
post_checksum,
post_attachment,
post_postcount,
post_edit_time,
post_edit_user,
post_edit_count,
post_edit_locked
) VALUES (
/* topic_id */ $new_topic_id,
/* forum_id */ $forum_to_post_in,
/* poster_id */ $userid_to_assign,
/* icon_id */ 0,
/* post_time */ $date_to_assign,
/* post_approved */ 1,
/* post_reported */ 0,
/* enable_bbcode */ 0,
/* enable_smilies */ 0,
/* enable_magic_url */ 1,
/* enable_sig */ 0,
/* post_subject */ '$wparticle_title',
/* post_text */ '$wparticle_excerpt',
/* post_checksum */ '$wparticle_excerpt_md5',
/* post_attachment */ 0,
/* post_postcount */ 1,
/* post_edit_time */ 0,
/* post_edit_user */ 0,
/* post_edit_count */ 0,
/* post_edit_locked */ 0
)";
if (!mysqli_query($con,$sql_write_post)) { die ("Error while creating post: " . mysqli_error($con)); }
问题在于,当我检查输出时,我得到的是两个换行符和读取更多链接。实际的摘录,由get_the_excerpt()创建的部分完全消失了。我得到的只是:
<br />
<br />
<a href="http://localhost/wptest/?p=167" title="Test Post" class="postlink">Click here to read the full article →</a>
我在转义它之后抛弃了$ wparticle_excerpt变量,我知道这很好。这只是一根长串。
如果我在摘录前放置任何文本,只要它在PHP中是硬编码的。然后有一个空白区域,摘录应该是,然后换行。无论我做什么,我都无法将摘录保留在那里,它只会在某处消失。
我确信这是最简单的事情,但我主要是自学成才,我不知道这是怎么回事。任何帮助都会非常感激。如果我没有正确解释,请告诉我。
我写的phpbb_posts表是utf8_bin,其中的post_text字段是mediumtext类型和utf8_bin,如果有任何帮助的话。