Run plugins only on certain pages

I want to use my personal plugin only in some pages. If I remove the add_action function ('the_content', 'my_plugin_content'); the plugin does not show me the content of the other pages that are not in in_array ();

function my_plugin_content($content){
  global $post; global $wp; global $wpdb;
  $page =array('page1', 'page2','page3');
  $current_page = $wp-request;
  if(in_array($current_page, $page))
  {
   $old_content=$post-post_content;
   $sql = "UPDATE wp_posts SET post_content = '' WHERE ID = $post-ID";
   $wpdb-get_results($sql);
   include_once(plugin_dir_path( __FILE__ ).'loaders/loaders.php');
   $obj = new Loader;
   $content.=$obj-controller($current_page);
   $my_post = array(); 
   $my_post['ID'] = $post-ID;
   $my_post['post_content']=$content;
   wp_update_post($my_post);
 }
}
add_action('the_content', 'my_plugin_content');

Topic custom-content activation pages customization plugins Wordpress

Category Web


I want to load content from another table into wp_posts and then show it as a normal page. What solution do you recommend.

If that's your goal, then use shortcodes!

For example:

// PHP code
add_shortcode( 'footag', 'wpdocs_footag_func' );
function wpdocs_footag_func( $atts ) {
    return "foo = ".$atts['foo'];
}

Then in your content:

[footag foo="bar"]

This prints foo = bar on the frontend

The [footag] will get replaced by what your shortcode function returns, and it'll happen when the page is generated. You can pass attributes to it too

Read more about add_shortcode and check the examples at the official docs here:

https://developer.wordpress.org/reference/functions/add_shortcode/

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.