几天来,我一直在努力寻找解决方案,我完全被难住了。
我正在建立一个网站来列出我要出售的域名组合,我正在使用我购买的插件来列出这些域名。插件的作者不在任何地方,我对PHP只有基本的了解。
该插件将每个域名列为一个单独的帖子,但它使用了一个自定义的帖子类型,该类型将帖子页面的url显示为optibrands.com/?mdlp_my_domain_list=znvr-com
哪里znvr.com
是出售的域名和帖子的标题。
我要做的是通过删除/?mdlp_my_domain_list=
并将其显示为optibrands.com/znvr-com
或optibrands.com/domain/znvr-com
如果前者不可能。
我试着用多种不同的方式重写htaccess,但都没有成功。我最接近的是添加:
`RewriteEngine OnRewriteCond%{\\u请求}\\/+(index.php)?\\?mdlp\\u my\\u domain\\u列表=([^&;\\]+)重写规则^/%2?[左,右]
重写条件%{REQUEST\\u FILENAME}-FreWriteSecond%{REQUEST\\u FILENAME}-dRewriteRule ^([^/]+)$/?mdlp\\u my\\u domain\\u list=$1[升,QSA]`
这会按照我的意愿重写URL,但会产生重定向循环错误。
我也尝试过调整插件的PHP函数,但我不太确定我是否知道需要编辑什么。
以下是我认为需要重写的代码片段:
public function filterRewriteRules( $wp_rewrite ) {
$base = trailingslashit( $this->rewriteSlug );
$baseSingle = trailingslashit( $this->rewriteSlugSingular );
$baseTax = trailingslashit( $this->taxRewriteSlug );
$baseTax = "(.*)" . $baseTax;
$newRules[$base . \'page/(\\d+)\'] = \'index.php?post_type=\' . self::POSTTYPE;
$newRules[$baseTax . \'([^/]+)/?$\'] = \'index.php?post_type= \' . self::POSTTYPE;
$wp_rewrite->rules = $newRules + $wp_rewrite->rules;
和/或
public function initialize() {
$this->pluginName = __( \'My Domain List\', $this->pluginDomain );
$this->rewriteSlugSingular = \'my-domain-list-pro-single\';
$this->rewriteSlug = \'mdlp_my_domain_list\';
$this->taxRewriteSlug = $this->rewriteSlug . \'/\' . __( \'mdlp_categories\', $this->pluginDomain );
和/或
public function create_post_type() {
$this->get_post_type_labels();
register_post_type(self::POSTTYPE, $this->postTypeArgs);
register_taxonomy( self::TAXONOMY, self::POSTTYPE, array(
\'hierarchical\' => true,
\'update_count_callback\' => \'\',
\'query_var\'=>true,
\'rewrite\' => false,
//\'rewrite\' => array(\'slug\'=> $this->taxRewriteSlug),
\'public\' => true,
\'show_ui\' => true,
\'has_archive\' => true,
\'labels\' => $this->taxonomyLabels
编辑:
Here is the entire contents of the PHP file如果有人知道我能做些什么来解决这个问题,我将永远感激,因为我几乎放弃了希望!
SO网友:Courtney Ivey
根据插件代码的粘贴位置,问题似乎在于自定义帖子类型的注册。问题在第25行。“重写”应设置为true。
<?php
private $postTypeArgs = array(
\'public\' => true,
\'rewrite\'=> false,
\'singular_label\' => \'mydomainlist\',
\'publicly_queryable\' => true,
\'show_ui\' => true,
\'show_in_menu\' => true,
\'query_var\' => true,
\'capability_type\' => \'post\',
\'has_archive\' => true,
\'hierarchical\' => false,
\'menu_position\' => 5,
\'supports\' => array(\'title\',\'editor\',\'author\',\'thumbnail\',\'excerpt\',\'comments\', \'custom-fields\', \'revisions\')
);
您应该使用:
\'rewrite\'=> true