这里的第一个问题,虽然阅读和搜索已经多次保存我的培根.
我充其量只是一个PHP黑客,而我正在构建的Wordpress主题迫使我学到很多东西.
我遇到了一个问题,试图让下一个和上一个链接的格式根据各自的类别(而不是single.php的页面)进行不同的显示.
到目前为止,这是我最好的尝试:
<?php next_post_link(
'%link',
if ( in_category( 'tweet' ) ) {
get_the_content()
} else {
echo '%title'
};,
FALSE
)?>
Run Code Online (Sandbox Code Playgroud)
这会导致语法错误.
我的第一个问题是,我甚至可以在函数的参数中使用if-else语句吗?
如果我以完全错误的方式接近它,那么它就会回到绘图板上.我也很欣赏任何其他建议!
我知道以下工作:
next_post_link( '%link', get_the_title(), FALSE );
next_post_link( '%link', '%title', FALSE );
Run Code Online (Sandbox Code Playgroud)
为了更加清楚,我希望根据链接本身的类别影响下一个/上一个链接的输出,而不是它们所在的当前主页.
我遇到的问题是a)如何确定next_post_link()和previous_post_link()的类别,然后b)相应地显示它们的Link
参数.如果我可以抛出白旗,我发现使用get_adjacent_post()和各种数组等的例子在这一点上似乎已经超出我的想象.我真的很感谢有人带我走过使用它们的任何解决方案.
我正在清理域名的目录结构(对我来说,在根目录中设置根URL的内容很糟糕!)并且需要一些关于如何正确使用RewriteRule的见解.
要旨
我希望domain.tld使用domain.tld /子目录/但仍然在url中显示为domain.tld.
我的.htaccess到目前为止
Options +FollowSymlinks
RewriteEngine On
#Force removal of wwww subdomain
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.domain.tld
RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L]
#Trailing slash
RewriteRule ^/*(.+/)?([^.]*[^/])$ http://%{HTTP_HOST}/$1$2/ [L,R=301]
#Redirect root url to subdirectory
RedirectMatch 301 ^/subdirectory/$ http://domain.tld/
RewriteRule ^/$ /subdirectory/?$ [L]
Run Code Online (Sandbox Code Playgroud)
RedirectMatch效果很好.不幸的是,似乎最后的RewriteRule 应该足够简单,但事实并非如此.仍会显示根目录中的旧内容设置.
我在这里错过了什么?
更新:已解决
简单的修复,我没有足够的经验与.htaccess/apache能够解释原因.
我有:
RewriteRule ^/$ /subdirectory/?$ [L]
Run Code Online (Sandbox Code Playgroud)
删除一个斜杠修复了所有内容:
RewriteRule ^$ /subdirectory/?$ [L]
Run Code Online (Sandbox Code Playgroud)
所以现在我的问题是:为什么?