创建新帖子时没有发现错误-如何更正?

时间:2012-03-06 作者:ElHaix

我最近在IIS 7上安装了WordPress,并将其连接到SQL Server 2008R2。安装进行得很顺利,然后经过一段时间的测试,在任何类别中都看不到新的帖子(或者任何帖子)。

在“管理”菜单的“帖子”下,我看到有六篇已发布的帖子“已发布(6)”。但是,下面的列表为空。还尝试通过选择类别返回在网站上查看这些内容

Nothing Found

抱歉,但找不到请求的存档的结果。也许搜索有助于找到相关的帖子。

我已经重新安装了数据库,重写了PHP/SQL文件,并重新安装了WP。问题仍然存在。

我尝试了设置/永久链接建议here 和没有变化。

建议here 与无法写入相关。htaccess文件。这对我来说不是问题,我也没有看到无法保存的错误。(为了验证,我保存、退出、导航到同一永久链接页面,并保存了我的设置)。

我甚至将Permalinks设置为默认值并删除了Web。配置重写规则:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="wordpress" patternSyntax="Wildcard">
            <match url="*"/>
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                </conditions>
            <action type="Rewrite" url="index.php"/>
        </rule>
     </rules>
    </rewrite>
  </system.webServer>
</configuration>
没有变化。(将其添加回)。

我在wp config中设置savequerys=TRUE。php和我可以在日志文件中看到一些帖子的内容。

嗨,你好!我白天是自行车信使,晚上是有抱负的演员,这是我的博客。我住在洛杉矶,有一只很棒的狗叫杰克。。。

没有变化。

我看到过其他帖子提到,由于系统可能检测到潜在的SQL注入攻击,因此更改了一些安全设置。但是,这些帖子与Apache相关的安装相关,在我的版本中找不到任何引用。

在此方面提供一些帮助将不胜感激。

谢谢

-- UPDATE --

我用WP 3.21重试了这个问题,并且一直在监视Windows/Temp/php53\\u错误。日志我看到的唯一问题是

[2012年3月7日21:00:51 UTC]WordPress数据库错误42000:[Microsoft][SQL Server Native Client 10.0][SQL Server]在“wp\\U users”附近的语法不正确。对于查询,请从INFORMATION\\u SCHEMA中选择TABLE\\u NAME。表名为“wp\\u用户”的表由display\\u setup\\u form、pdo\\u wpdb->query、pdo\\u wpdb->post\\u query、pdo\\u wpdb->print\\u error生成

1 个回复
SO网友:kaiser

分析错误

WordPress数据库错误42000:[Microsoft][SQL Server Native Client 10.0][SQL Server]wp\\u users附近的语法不正确。对于查询,请从INFORMATION\\u SCHEMA中选择TABLE\\u NAME。表名为“wp\\u用户”的表由display\\u setup\\u form、pdo\\u wpdb->query、pdo\\u wpdb->post\\u query、pdo\\u wpdb->print\\u error生成

&hellip;内容如下:

SELECT TABLE_NAME 
FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_NAME 
    LIKE \'\'wp_users\'\' 
你的问题constant在查询字符串中。这些常数根本不会被触发。

如何正确操作注意:不能将常量放入字符串中。您必须执行以下操作:

$wpdb->query( $wpdb->prepare( "
        SELECT %s
        FROM %s
            WHERE %s
            LIKE %s
    " ),
    TABLE_NAME,
    INFORMATION_SCHEMA,
    TABLE_NAME,
    like_escape( $wpdb->users )
);
这个↑ 是a)保存和b)正确的方法。

另一个误解是:;

display_setup_form
pdo_wpdb->query
pdo_wpdb->_post_query
pdo_wpdb->print_error
&hellip;似乎源于错误的函数命名。

调用表名和$wpdb (WP_Query) 功能:

对象$pdo_wpdb->query 可能不存在。你必须打电话给global $wpdb; 一开始然后,您将可以访问许多内容,例如本机查询函数。

# Example:
global $wpdb;
// The prefix you set inside your wp-config.php file
echo $wpdb->prefix;
// Default tables:
print_r( $wpdb->users );
print_r( $wpdb->options );
// Custom tables:
print_r( "{wpdb->prefix}your_table_name" );

结束

相关推荐

Trim posts from WP-Query?

我希望在我的首页上显示一些由以下标准确定的帖子:显示当月的所有帖子(实际上是从最近帖子对应的月份开始);但是如果这个数字少于(比如)8,那么就显示最近的8篇帖子。假设我知道每个月都不会有超过(比如)20篇文章,我会将posts\\u per\\u page设置为20,通常抓取最近的20篇文章,然后在php中进行适当的修剪(切片)。(在SQL中这样做似乎太复杂了)顺便说一句:起初我以为add_filter( \'posts_results\', ... ) 这很合适,但很难区分查询是与主循环相对应,还是与其