Wordpress Themes - WP Forum at BFA
There will be no more development for Atahualpa (or any other theme), and no support. Also no new registrations. I turned off the donation system. I may turn the forum to read only if it gets abused for spam. Unfortunately I have no time for the forum or the themes. Thanks a lot to the people who helped in all these years, especially Larry and of course: Paul. Take care and stay healthy -- Flynn, Atahualpa developer, Sep 2021

Wordpress Themes - WP Forum at BFA » WordPress Themes » Atahualpa 3 Wordpress theme » Sidebars & Widgets »

Right and left Sidebar behave different with same PP


  #1  
Old Feb 7, 2017, 01:24 PM
dadadesign
 
8 posts · Nov 2009
Hi everyone,

I am desperetly seeking for help. I am using this PHP code in PHP Code Widget:
Code:
<?php
// Retrieve consistent random set of posts with pagination function mam_posts_query($query) {
   global $mam_posts_query;
   if ($mam_posts_query && strpos($query, 'ORDER BY RAND()') !== false) {
      $query = str_replace('ORDER BY RAND()',$mam_posts_query,$query);
      //print_r("<p>$query</p>");
   }
   return $query;
}
add_filter('query','mam_posts_query');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$seed = date('Ymdh');  // Use date('Ymdh') to get an hourly change
global $mam_posts_query;
$mam_posts_query = " ORDER BY rand($seed) "; // Turn on filter
$args = array(
   'caller_get_posts' => 1,  // Stickies will be repeated if this is not set
   'orderby' => 'rand',      // This MUST be in the query - the filter checks for it
   'paged' => $paged,
  'category_name'  => 'anwaelte',
        'posts_per_page' => 4,
		'year'     => 2017
);
query_posts($args);
$mam_posts_query = ''; // Turn off filter
// echo "<br />Seed is $seed, Paged is $paged";
if (have_posts()) {
   while (have_posts()) {
      the_post();
      echo '<br /><a href="' . get_the_permalink(). '">' 
 . get_the_title() . '</a>'
 ;
   }
}  ?>
If I put the widget in the right sidebar, it shows 4 post titles linked to their permalinks and the content of the actual Post in the centre column - as expected. Unfortunately I have to put the widget in the left sidebar. There it Shows the same entries, BUT in the Centre Column I see the excerpts of the four posts, not the content of the actual post as it should be.

How can I manage that the left Sidebar shows the same behaviour as the right Sidebar?

Every hint is gladly appreciated!
  #2  
Old Feb 7, 2017, 01:51 PM
juggledad's Avatar
juggledad
 
23,765 posts · Mar 2009
OSX 10.11.5 WP 4.x Atahualpa(all) Safari, Firefox, Chrome
Your code throws an error. In the beginning:
HTML Code:
// Retrieve consistent random set of posts with pagination function mam_posts_query($query) {
   global $mam_posts_query;
   if ($mam_posts_query && strpos($query, 'ORDER BY RAND()') !== false) {
      $query = str_replace('ORDER BY RAND()',$mam_posts_query,$query);
      //print_r("<p>$query</p>");
   }
   return $query;
}   <==============this is unmatched.
you have an unmatched '}'
__________________
"Tell me and I forget, teach me and I may remember, involve me and I learn." - Benjamin Franklin
Juggledad | Forum Moderator/Support
  #3  
Old Feb 8, 2017, 01:57 AM
dadadesign
 
8 posts · Nov 2009
Thank You very much for your quick response, Juggledad!

I did copy and paste with an iPad, with which I am not very familiar, sSorry about that. Here is the correct code:

Code:
<?php
 
// Retrieve consistent random set of posts with pagination
function mam_posts_query($query) {
   global $mam_posts_query;
   if ($mam_posts_query && strpos($query, 'ORDER BY RAND()') !== false) {
      $query = str_replace('ORDER BY RAND()',$mam_posts_query,$query);
      //print_r("<p>$query</p>");
   }
   return $query;
}
add_filter('query','mam_posts_query');
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$seed = date('Ymdh');  // Use date('Ymdh') to get an hourly change
global $mam_posts_query;
$mam_posts_query = " ORDER BY rand($seed) "; // Turn on filter
$args = array(
   'caller_get_posts' => 1,  // Stickies will be repeated if this is not set
   'orderby' => 'rand',      // This MUST be in the query - the filter checks for it
   'paged' => $paged,
  'category_name'  => 'anwaelte',
        'posts_per_page' => 4,
		'year'     => 2017
);
query_posts($args);
$mam_posts_query = ''; // Turn off filter
// echo "<br />Seed is $seed, Paged is $paged";
if (have_posts()) {
   while (have_posts()) {
      the_post();
      echo '<br /><a href="' . get_the_permalink(). '">' 
 . get_the_title() . '</a>'
 ;
   }
}  ?>
I am still seeking for a solution, in which placing the PHP widget on the left sidebar leads to same results as placing it on the right.
  #4  
Old Feb 8, 2017, 05:29 AM
juggledad's Avatar
juggledad
 
23,765 posts · Mar 2009
OSX 10.11.5 WP 4.x Atahualpa(all) Safari, Firefox, Chrome
What's happening is you are messing with the default query - not a good idea.

In simple terms:
- with widget in left sidebar
-- Page starts to load
-- WP has a default query it is going to use
-- the header, left and left inner sidebar code run
-- your code sets information for 'the loop' and runs the query
-- sidebar finished and center colum gets built
-- loop runs again using data setup by your query
-- right-inner and right sidebar code run
-- footer code run

- with loop in right sidebar
-- Page starts to load
-- WP has a default query it is going to use
-- the header, left and left inner sidebar code run
-- sidebar finished and center colum gets built
-- loop runs using default query options
-- right-inner and right sidebar code run
-- your code sets information for 'the loop' and runs the query with your options
-- footer code run

You need to look at how to create a new query in your code
__________________
"Tell me and I forget, teach me and I may remember, involve me and I learn." - Benjamin Franklin
Juggledad | Forum Moderator/Support
  #5  
Old Feb 8, 2017, 12:32 PM
dadadesign
 
8 posts · Nov 2009
Thank you again, Juggledad!
Your detailed list of the different processes is enlightening. I will try to follow your advise to create a new query.

Bookmarks



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Is there a way to make the backround behave like the header? harpek Atahualpa 3 Wordpress theme 7 Feb 1, 2011 06:05 PM
[SOLVED] Moving left sidebar - CSS styling for td#left Wimbledon Sidebars & Widgets 4 Oct 26, 2010 11:39 PM
Move left left sidebar to bottom of page sisiblum Sidebars & Widgets 2 May 6, 2009 12:25 AM
Indenting left margin without a left sidebar showing rhymes Sidebars & Widgets 0 Apr 28, 2009 10:02 PM


All times are GMT -6. The time now is 09:37 PM.


Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.