Hello,

With the new version of Drupal (7.0) I can't disable the link "read more" when I create a new page (for example the home page).
How can I do that?

Thanks you!

Comments

7hibaud’s picture

nobody?

fabryka’s picture

I have the same problem, but only with the front page. Simple pages work fine.
Anybody know how to disable "read more" ?

meyghania’s picture

might be helpful:
1 - Go to: structure > content types
2 - under Basic page (assuming that the promoted page is a basic page) choose manage display.
3 - on the bottom click on "Custom display settings"
4 - uncheck all the other and enable full content.
It worked for me, But it did not fully remove the "read more" link. It should be in a module or something to remove the read more link ...

chanakyas’s picture

This is the best solutions and works absolutely. Thanks for this correct support information.

rituraj

fatkinson’s picture

I've been trying everything. The Read More link is still at the bottom of the page. But all of the content is showing when you go to the main page.
Thanks very much for your good solution.

plcarpenter’s picture

I tried this first and it worked for me. Thank you for posting!

plcarpenter

alvaroarta’s picture

In your style.css:

.node .links,
.comment .links { display:none;

}

It´s working in 7.8

Regards !

DoubleEye’s picture

Been working on removing the "Read More" link on the home page for about 5 hours. Saw this simple CSS code, added it to the bottom of my style.css file, and it worked!

Thanks!!

PS. The title still acts as a link to the "full page", but I don't mind if someone clicks on that.

meyghania’s picture

Might be helpful to allow full content to be shown on the front page:

1 - Go to: structure > content types
2 - under Basic page (assuming that the promoted page is a basic page) choose manage display.
3 - on the bottom click on "Custom display settings"
4 - uncheck all the other and enable full content.
It worked for me, But it did not fully remove the "read more" link. It should be in a module or something to remove the read more link ...

george.mihaescu’s picture

Hello!
I use the Marinelli theme, but i guess the option is available on all themes

in the template folder of the theme you should have "node--teaser.tpl.php" - that is the file that tells Drupal how to render your teasers.
at some point, near the end, i have

<span class="teaser-readmore"><?php print l(t('read more'), 'node/' . $nid, array('attributes' => array('class' => t('node-readmore-link')))); ?></span>

i commented that line and the "read more" link disappeared. Because there is no if() condition in the code to display that, i guess it doesn't have an option to disable somewhere in the admin panel.

jseffel’s picture

I'm using a subtheme created from Bartik, I added this in node.tpl.

if(!$readmore) {
unset($content['links']['node']['#links']['node-readmore']);
}
before these lines:
// Only display the wrapper div if there are links.
$links = render($content['links']);

Developer @ Cerpus Sverige AB | http://cerpus.se

pc-wurm’s picture

I had to add isset function into if statement.

if(!isset($readmore)) {
unset($content['links']['node']['#links']['node-readmore']);
}
before these lines:
// Only display the wrapper div if there are links.
$links = render($content['links']);

serotonin’s picture

I wanted to remove the read-more link only from the frontpage, this works for me:
(Placed in node.tpl.php)

<?php    if($is_front) {
    unset(
$content['links']['node']['#links']['node-readmore']);
}
?>
Jane_newbie’s picture

I have a Drupal 7.10 site and am using the Marinelli theme. I have the same problem with the "Read more" link - it still shows at the end of an article even if the entire article is being displayed. I would like for it not to show if the entire article is displayed. I have already tried some of the solutions mentioned in drupal.org node 1045562 - I tried commenting out the code in node-teaser.tpl.php as posted by george.mihaescu on April 9, 2011 at 9:11pm (who was also using Marinelli) and it didn't work. I tried to implement the suggestiion by alvaroarta on September 16, 2011 at 9:33pm who said to add some code to the style.css - but Marinelli doesn't seem to HAVE a style.css (Other themes do. I can't find it in Marinelli.) Other folks have made other suggestions (node.tpl.php), but the code they speak of ($links = render($content['links']); isn't the same as what I see in my node.tpl.php file. I'm not familiar enough with php to be comfortable with putting in code unless I am sure of what I am doing.
Does anyone have some more ideas? What would be the comparable style.css file in Marinelli? And when are they going to fix this permanently in Drupal 7? It's not a problem in Drupal 6.)

amorales@drupal.org.es’s picture

You can use Views module for that purpose.

By one hand you are not coding any .tpl file and by other with views you have all the control of what you are presenting to the front page.

Views comes with a pre-configured front view, so you can use that or create one for that purpose. Then disable the read more link option and you get it.

Don´t forget to rewrite the path of the view to your front page path.

You can find more info here... http://drupal.org/node/1042720

Hope it could help.

Alberto Morales
www.emagina.es

dayofthedave’s picture

If you don't already have a preprocess node function in your template.php file, add one now (where "foo" is the name of your theme):

function foo_preprocess_node (&$variables) {
}

To get rid of the "read more" link completely, add this line to your preprocess node function:

function foo_preprocess_node (&$variables) {
  unset($variables['content']['links']['node']['#links']['node-readmore']);
}

Note that you may have to clear the theme registry cache (or just clear all caches) in order for Drupal to start using your preprocess node function, if you didn't already have one.

It's always a good idea to put "action code" like setting and unsetting variables in your template.php file, using your .tpl files simply to read (if/else) and print the values.

Jerya’s picture

In the cases you want the teaser to show the full content (when

is at the very end of the article), you may want the "Read more" link not to show up for this material.
If it is a simple text node and there are no more additional fields (a simple text node) - this is how we can do it:

In your theme template.php :

<?php
function <your-template-name>_preprocess_node(&$variables) {
  ...
// In some themes it can be '$variables' in the others - '$vars'.
 
$node = $vars['node'];

 
// Check first the "body field" exists or not.
 
$field = field_get_items('node', $node, 'body');

 
// If available do execution ..
 
if($field) {
   
$show_read_more = 1;
    if(
array_key_exists($GLOBALS['language_content']->language, $node->body))
    {
       
$body = $node->body[$GLOBALS['language_content']->language][0]['safe_value'];
        if(
stristr($body, "<!--break-->")) // Lets make sure that this is indeed the end of article.
       
{
           
$rest_of_the_text = substr($body, strpos($body, "<!--break-->"));
            if(
strlen($rest_of_the_text)<strlen("<!--break--></p><p>&nbsp;</p>"))
               
$show_read_more = 0;
        }
        else if (
$vars['content']['body'][0]['#markup'] == $body)
           
$show_read_more = 0;
    }
    if(
$show_read_more == 0)
        unset(
$vars['content']['links']['node']['#links']['node-readmore']);
  }
  ...
}
?>
Alan D.’s picture

To optional show or hide the link completely or to conditionally display this based on any number of fields, the read more control project could help. This can be set globally per for the site or overridden per content type.

fatkinson’s picture

Thanks so very much for telling me about this module.
I installed it and the 'Read More' link is completely gone now that I've configured it that way.
Yes, it works.

hectorplus’s picture

Thank you, I was looking so badly for a module like this: Read More Control. Much appreciated!

mactrix’s picture

I solved this issue by setting my Home page as the 'Default front page'. Goto, Home » Administration » Configuration » System » Site information, in the 'FRONT PAGE' section, add the name of your front page in the 'Default front page'.

Willynux’s picture

Drupal is always so logical but sometimes hard to get at

davea0511’s picture

Tried a million things then this. The "Default front page" was automatically stored as "node". I simply changed it to "node/1", which is what I was using anyway and it fixed this problem. Now it shows the full node without the collapsed "read more" sections.

Don't know why the full node display isn't the default. Should be. Also hiding the page name should also be default. Don't know why I have to freaking edit the CSS every time to say "h1.page-title {display:none;}" every friggin time. pages look so charlie-brown with that info on there. like having a "click here" on what's clearly a button. Little ridiculous defaults like this on drupal are absurd.

Jaypan’s picture

Don't know why the full node display isn't the default.

1) Because there are no nodes when the site is created, so there is no node to set as the default.
2) Because /node gives a listing of nodes rather than a single node, and top pages more often show listings than single nodes
3) It's arbitrary and easy to change.

Also hiding the page name should also be default.

Again, arbitrary. There is actually more reason to show the page name than not. More often than note people will display the page name on a page.

Don't know why I have to freaking edit the CSS every time to say "h1.page-title {display:none;}" every friggin time.

You don't. You can copy node.tpl.php to your theme, and remove the title altogether, and it won't even show up in your HTML to need to be hidden.

Little ridiculous defaults like this on drupal are absurd.

Not really. First off, the defaults you want are actually not what most people want in defaults. Second, Drupal is extremely customizable, which means you can change whatever you want to whatever you need, so the defaults don't even matter anyways. The things you want changed can be done in a matter of minutes.

I will soon be leaving the Drupal forums permanently. To understand why, please see this thread.

davea0511’s picture

well, the fact that so many people here have to ask the question in the first place about removing the read more, or page titles proves me right. Drupal has an awesome Admin GUI (although a bit convoluted organization), and it's a shame it isn't utilized for enabling the hiding of page titles or the read-more.

Also, I think you need to do some research ... I don't think most users want to be forced to have a title on their home page for example. They might, but at a minimum most would like at least the option to hide it without having to edit php files.

ScottyGoodBoyy’s picture

I have been reading posts for months and this was the best solution!

kojow7’s picture

Here is what I did to solve the problem in Drupal 7:

  1. Install the Read More Control module: https://drupal.org/project/readmorecontrol
  2. Go to the Global settings under Configuration > Content Authoring > Read More Settings
  3. Set the default behaviour to "Show link when required by any supported fields"
  4. Go to the configuration page for my content type.
  5. Remove "Teaser" in the Custom Display Settings section.
mallison’s picture

I added this CSS to my theme's style.css file...

#main #content .node-teaser .links {
visibility:hidden;
}

Shows the teaser without the read more link.

JurgenR’s picture

Hiding stuff by using CSS is generally a very bad idea. Future developers won't have a clue where to find this tricky solution.
A better approach is to unset the links array in hook_preprocess_node (template.php) or unset it in hook_node_view_alter (custom module).
You can read how to do it on Remove the read more and comment links on nodes.

Full time Drupal 7 backend developer since 2011.
Open Source Webdevelopment Coding Blog

scottalan’s picture

To do this (D7) in code you can do the following:

1. Create a links--node.tpl.php in your theme.
2. In template.php in your theme add:

<?php
function YOURTHEME_preprocess_links__node(&$vars) {
  if (!empty(
$vars['links'])) {
    if (!empty(
$vars['links']['node-readmore'])) {
      unset(
$vars['links']['node-readmore']);
    }
  }
}
?>

3. In your new template filie links--node.tpl.php add:

<?php print theme_links($variables) ?>

---Clear Cache

Of course you can just hide it using CSS but I prefer to just remove it in the backend.

-Scott