我有一个
query
到 fetch
来自自定义帖子类型 device
的所有帖子,我想每页显示 3 个帖子。使用 next
和 previous
链接,我可以导航到下一页,另外 3 个帖子可以看到。它与默认的 permalink
完美配合,即
//the default permalink of wordpress
http:mywebsite/?p=123
为了SEO目的,我需要将其更改为
Post name
,如下所示:
http:mywebsite/sample-post/
然后问题突然出现了。
我搜索并阅读了更多博客/文章,但找不到任何有用的建议。我被这个问题困扰了,让我头疼。
顺便说一句,我使用了这个查询:
<?php
if (have_posts()) : {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts('showposts=3&post_type=advice'.'&paged='.$paged);} ?>
<ul class="adviceLandingPage">
<?php while(have_posts()) : the_post(); ?>
<li>
<span><?php the_title(); ?></span>
<span><?php $excerpt = get_the_excerpt(); echo string_limit_words($excerpt,20); ?></span>
</li>
<?php endwhile; ?>
<li class="navigation">
<?php posts_nav_link(); ?>
</li>
</u>
<?php endif; ?>
谢谢您的任何建议。
编辑:
当我导航到下一页时,我假设会看到接下来的 3 篇文章,这是错误
Page not found
。
这是将永久链接更改为 %postname% 后的 .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /bryan/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /bryan/index.php [L]
</IfModule>
# END WordPress
要解决此问题,请执行以下步骤:
httpd.conf
文件LoadModule rewrite_module modules / mod_rewrite.so
#
AllowOverride none
并转换为 AllowOverride all
就这么简单又美味:)
运行以下命令
注意:
$
不是命令的一部分
$ sudo a2enmod rewrite
$ cd /var/www/html
$ ls -al
$ sudo touch .htaccess
$ sudo nano .htaccess
修改您的
.htaccess
文件以查看上面的代码片段
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
$ sudo chmod 644 .htaccess
$ sudo nano /etc/apache2/sites-available/000-default.conf
确保
AllowOverride All
已设置
<Directory "/var/www/html">
AllowOverride All
</Directory>
$ sudo /etc/init.d/apache2 restart
有关更多信息,请参阅下面的链接。
https://sachinparmarblog.com/fixing-permalinks-on-wordpress-to-use-postname/
另请检查
httpd.conf
文件并确保 AllowOverride
是保存 All
文件的目录的 .htaccess
不确定您是否已经解决了这个问题,但通常您需要做的就是刷新数据库,登录到您的网站,转到永久链接,然后进行更改并保存,如果这没有帮助
我找到了解决办法。
进入 WordPress 管理仪表板,转到:
“设置”>“固定链接”>“常用设置”,并将单选按钮设置为“自定义结构”
,然后粘贴到文本框中:
/index.php/%year%/%monthnum%/%day%/%postname%/
,然后单击“保存”按钮。
当我没有授予 .htaccess 文件的写入权限时,就会发生这种情况。更改 .htaccess 文件的权限解决了我的问题
我在
Settings-> Permalinks
检查 Post name
并复制 .htacces
的内容中解决了这个问题,保存时会显示该内容。访问虚拟主机并修改.htaccess
并粘贴内容并保存
使用 LetsEncrypt 证书更新到 https/SSL 后,我遇到了这种情况。
下面 URL 中的说明有效,但是我必须使用“AllowOverride All”更新 ssl conf 文件,而不是更新 000-default.conf。
/etc/apache2/sites-available/domainname-le-ssl.conf
https://sachinparmarblog.com/fixing-permalinks-on-wordpress-to-use-postname/
我只能编辑主页和其他页面,卡在加载页面。我遵循 iagowp 答案,它解决了我的问题。谢谢iagowp!
如果您正在使用 nginx 并且想要将 WordPress 永久链接从普通名称更改为帖子名称,只需将以下行添加到 nginx 文件中
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
如果您的 WordPress 安装在特定文件夹 example /blog 中,则添加此
location / {
try_files $uri $uri/ /blog/index.php?q=$uri&$args;
}