我在自定义帖子类型query
中发布了fetch
到device
个帖子,我希望每页显示3个帖子。使用next
和previous
链接,我可以浏览下一页,其他3个帖子可以看到。它与默认的permalink
//the default permalink of wordpress
http:mywebsite/?p=123
我需要将其更改为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; ?>
感谢您的任何建议。
修改:
当我导航到下一页时,我假设看到下一个帖子,这是错误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
答案 0 :(得分:7)
要解决此问题,请执行以下步骤:
httpd.conf
文件LoadModule rewrite_module modules / mod_rewrite.so
#
AllowOverride none
并转换为AllowOverride all
它就像美味一样简单:)
答案 1 :(得分:2)
运行以下命令
注意:$
不是命令的一部分
$ sudo a2enmod rewrite
$ cd /var/www/html
$ ls -al
$ sudo touch .htacess
$ sudo nano .htacess
修改您的.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/
答案 2 :(得分:1)
我找到了解决办法。
进入WordPress管理信息中心,转到:
“设置”&gt; “永久链接”&gt; “常用设置”,并将单选按钮设置为“自定义结构”
,然后粘贴到文本框中:
/index.php/%year%/%monthnum%/%天%/%postname%/
,然后点击“保存”按钮。
答案 3 :(得分:1)
同时检查httpd.conf
文件并确保AllowOverride
为All
,以保存包含.htaccess
文件的目录
答案 4 :(得分:0)
不确定你是否已经解决了这个问题,但通常你需要做的就是刷新数据库,登录到你的站点,转到固定链接,然后进行更改并保存,如果这没有帮助
答案 5 :(得分:0)
当我不授予对.htaccess文件的写访问权时,这会发生在我身上。更改.htaccess文件的权限解决了我的问题
答案 6 :(得分:0)
我通过Settings-> Permalinks
检查Post name
并复制.htacces
的内容(保存时显示)解决了该问题。访问网络托管并修改.htaccess
,然后粘贴内容并保存
答案 7 :(得分:0)
使用LetsEncrypt证书更新为https / SSL后,我遇到了这种情况。
下面URL中的说明是有效的,但是我没有更新000-default.conf,而是使用“ AllowOverride All”更新了ssl conf文件。
/etc/apache2/sites-available/domainname-le-ssl.conf
https://sachinparmarblog.com/fixing-permalinks-on-wordpress-to-use-postname/
答案 8 :(得分:-1)
如果您使用的是nginx,并且要将wordpress的永久链接从纯文本更改为帖子名称,只需将以下行添加到nginx文件中
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
,如果您的wordpress已安装在特定的文件夹示例/ blog中,则添加此
location / {
try_files $uri $uri/ /blog/index.php?q=$uri&$args;
}