小编Wil*_*ips的帖子

Wordpress:将if-else语句插入next_post_link()/ previous_post_link()参数?

这里的第一个问题,虽然阅读和搜索已经多次保存我的培根.

充其量只是一个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()和各种数组等的例子在这一点上似乎已经超出我的想象.我真的很感谢有人带我走过使用它们的任何解决方案.

php wordpress

6
推荐指数
1
解决办法
858
查看次数

.htaccess:将根URL重定向到子目录,但保留根URL

我正在清理域名的目录结构(对我来说,在根目录中设置根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)

所以现在我的问题是:为什么?

apache .htaccess mod-rewrite

6
推荐指数
1
解决办法
7303
查看次数

标签 统计

.htaccess ×1

apache ×1

mod-rewrite ×1

php ×1

wordpress ×1