WordPress.org

Ready to get started?Download WordPress

Forums

Remove slug from custom post type
Remove Slug Custom post type error! (11 posts)

  1. mihart
    Member
    Posted 2 years ago #

    Hi,

    I'm having this error when i try to add a portfolio (custom post type).

    Remove Slug Custom post type error!
    .htaccess is not writable, please add following lines to complete your installation:
    RewriteRule ^/(.+)$ /$1 [R=301,L]
    RewriteRule ^portfolio/(.+)$ /$1 [R=301,L]

    When I check my htaccess here's what I found. It's already written in my htaccess except it has "acf" in the first rewrite.

    # BEGIN REMOVE SLUG CUSTOM POST TYPE RULES
    RewriteRule ^acf/(.+)/$ /$1 [R=301,L]
    RewriteRule ^portfolio/(.+)/$ /$1 [R=301,L]
    # END REMOVE SLUG CUSTOM POST TYPE RULES

    I try to change It and put the code that the error suggested and still having error after I refresh the page.

    http://wordpress.org/extend/plugins/remove-slug-from-custom-post-type/

  2. iamSeanGrant
    Member
    Posted 1 year ago #

    I got this error too when Adding a New "custom post" like Portfolio, Testimonials, etc.

    I believe, in the end, this doesn't hinder the Plugins functionality nor is the htaccess file actually un-readable or un-writable.

    The solution for now is to just input a Title for your Portfolio (or other custom post type) and then Save as Draft. Once you have a slug (created from title), the error goes away.

    I think I've narrowed the issue down to either this part of code:

    private function add_rules_htaccess() {
    	global $wp_post_types;
    	$suffix = get_option('uwt_permalink_customtype_suffix');
    	$write = array();
    	$htaccess_filename = site_url(). '/.htaccess';
    	if (is_readable($htaccess_filename)) {
    		$htaccess = fopen($htaccess_filename, 'r');
    		$content = fread($htaccess, filesize($htaccess_filename));
    		foreach ($wp_post_types as $type=>$custom_post) {
    			$rewrite_rule = (!empty($suffix))
    						? "RewriteRule ^{$custom_post->query_var}/(.+)/\$ /\$1\.{$suffix} [R=301,l]"
    						: "RewriteRule ^{$custom_post->query_var}/(.+)/\$ /\$1 [R=301,L]";
    			if (strpos($content, $rewrite_rule) == false && $custom_post->_builtin == false)
    				$write[] = $rewrite_rule;
    		}
    		fclose($htaccess);
    	}
    	else {
    		add_action('admin_notices', array(&$this, 'compatibility_notice'));
    		return;
    	}

    Specifically: "if (is_readable($htaccess_filename))" and either the path to htaccess is wrong (you can see I changed my code to use site_url instead of the ABSPATH in case of an issue there, but that didn't help)

    OR it's to due with the next part of code and either the $write variable is empty or the htaccess isn't writable. I suppose it's possible that is_writable would return false if there was some sort of restriction with your host and using this PHP function.
    I'm not sure.

    if (!empty($write) && is_writable($htaccess_filename)) {
    	$new_rules = '# BEGIN ' . $this->htaccess_tag . PHP_EOL;
    	$new_rules .= str_replace('$', '\\$', implode(PHP_EOL, $write)) . PHP_EOL;
    	$new_rules .= '# END ' . $this->htaccess_tag;
    	if (strpos($content, "# BEGIN {$this->htaccess_tag}") === false) {
    		file_put_contents($htaccess_filename, $new_rules . PHP_EOL . PHP_EOL . $content);
    	}
    	else {
    		$pattern = "/# BEGIN {$this->htaccess_tag}.*?# END {$this->htaccess_tag}/ims";
    		$content = preg_replace($pattern, $new_rules, $content);
    		file_put_contents($htaccess_filename, $content);
    	}
    }
    else
    	add_action('admin_notices', array(&$this, 'compatibility_notice'));
    }

    If anyone has any other insight, I've love to get rid of this ugly red error for my clients when they add new Custom Post types and use this plugin.
    So Chime in. :)

  3. kiliot
    Member
    Posted 1 year ago #

    Hello,

    Thanks for this plugin. I've tried this plugin to solve the problem of specific post like "product-review" and it is working just for the already posted "product-review" posts, but not for the new ones. Every time I create a new one, after published I have a 404 error. I've tried to save first as a draft, due to the warning referred before, as I also tried to include the rewrite rule on the .htaccess file and no luck :(
    Is there anything that I'm missing ?
    Thanks for your help

  4. woodmr
    Member
    Posted 1 year ago #

    Sean, I can affirm that your solution works. Actually, I can publish the custom post type, click anywhere else in the site, than return to the url and get it to show up. Thanks for doing all the digging into the code: when I have some leisure (read: at home time), I'll experiment further to try to find a solution.

  5. nicholefcook
    Member
    Posted 1 year ago #

    I wasn't happy with the permalink structure of the portfolio function in my theme so I installed this plugin to try to change the "folio" in http://fayfitness.com/folio/postname to "services". Apparently that is not the function of this plugin so I uninstalled and deleted it. Now, after deleting the plugin, when I click on the portfolio entry, it skips the "folio" completely and gives me a 404 error. Did the plugin alter code in my database? I can't find any changes or anything to fix this problem now and I'm supposed to be releasing this site tomorrow! I tried re-installing and following the instructions above with no improvement.

    Please help, I've never had a plugin break my site after uninstalling and I don't know what else to try! I uninstalled the plugin again and double checked my ftp to be sure the folder was gone.

    Thanks!

  6. iamSeanGrant
    Member
    Posted 1 year ago #

    @nicholefcook
    I don't think the plugin altered your database and didn't clean itself up upon uninstall.

    It sounds like perhaps the plugin edited your .htaccess file and didn't clean it up at uninstall.

    Try this:
    1) Go to Permalinks Settings page and click Save (technically you don't need to click Save anymore, as just a visit to this setting does a check).

    OR, if that doesn't work:

    2) Open your .htaccess file and delete the rule the previous plugin made. If you an find it. If you can't tell, then make a backup of this file. Delete it from server. Then visit permalink settings page again an click save to hve teh .htaccess file rebuilt.

    Let us know if this helps.

    Peace,
    Sean

  7. nicholefcook
    Member
    Posted 1 year ago #

    Ok, I had already tried resetting the permalinks settings in wp and I also deleted and rebuilt the .htaccess file with no success :( The portfolio items are still giving me a 404 error. Any thoughts?

  8. iamSeanGrant
    Member
    Posted 1 year ago #

    @nicholefcook

    I went to your site and it looks like it's working fine.
    Links like this http://fayfitness.com/folio/special-populations/ seem to load just fine with no 404.

    Does it work that way for you?

    Did you do anything new to fix it?
    If so, let us know.

    Peace,
    Sean

  9. nicholefcook
    Member
    Posted 1 year ago #

    I ended up putting all the portfolio items in the trash, and then restoring them. Somehow that broke the bug and everything is working fine now!

    Thanks so much for the help!

  10. rathva
    Member
    Posted 1 year ago #

    Hello,

    I was facing same issue with the plugin, i have solved it, My htaccess file is writable but it was still showing same error mesg.

    - I have changed public function compatibility_notice() and remove div :)

    Thanks
    Kalpesh Rathva

  11. jaydp
    Member
    Posted 1 year ago #

    Hi,

    I am getting same problem.
    After activation of this plugin when i upload new products than i am getting page not found error

    Please suggest me ASAP.......

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic