How to show my plugin in WordPress? - wordpress

can any one help to solve a problem?
Just For example:
If I have one site wpnpl.com.np
I wannt to give access to the files of a plugin like if they type
wpnpl.com.np/npl they will access the features of the plugin
How to do this???Any Idea

First create plugin short code in your plugin core file
function bartag_func( $atts ) {
$atts = shortcode_atts( array(
'foo' => 'no foo',
'baz' => 'default baz'
), $atts, 'bartag' );
return "foo = {$atts['foo']}";
}
add_shortcode( 'bartag', 'bartag_func' );
After that create a page in wp-admin with slug npl and content with
[bartag foo="bar"]

Related

Placing Wordpress plugin name at the top of the amdin header

I have a Wordpress plugin which I've named 'Solve Maths'. I want this plugin name to be displayed only at the Admin header of the Arthur alone for easy access.
I used the admin_head action hook but once I installed the plugin, the system tells me my plugin has generated these number of characters at the header.
<?php function Solve_Maths{ echo "<a href='Solve_Maths.php'>Solve Maths</a>";} add_action('admin_head','Solve_Maths');?>
The Solve_Maths.php is the name of the main plugin file with the header information. I want this file name in the tag to be shown at the admin header of the user and should execute the file when the link is linked. Thank you all for your help.
This is not the correct way to do it. Please check the WordPress Codex and refer to the function add_node: https://codex.wordpress.org/Function_Reference/add_node
add_action( 'admin_bar_menu', 'toolbar_link_to_mypage', 999 );
function toolbar_link_to_mypage( $wp_admin_bar ) {
$args = array(
'id' => 'my_page',
'title' => 'My Page',
'href' => 'http://example.com/my-page/',
'meta' => array( 'class' => 'my-toolbar-page' )
);
$wp_admin_bar->add_node( $args );
}

shortcode for displaying custom taxonomy with description in pods plugin - wordpress

i have created a custom taxonomy named 'singer' using pods plugin and inside that plugin i have defined a label named 'details'. what i want to do is to generate a short code in which returns that details. i have searched my way through lots of documentation, but could not find one.image showing the custom field i have added inside the taxonomy
Thanks for helping!
Do you need it to be that complicated? (Meaning, do you need a plugin?)
Register a new taxonomy in your functions "singer":
function taxonomies_init() {
// create a new taxonomy
register_taxonomy(
'singer',
'post',
array(
'label' => __( 'Singer' ),
'rewrite' => array( 'slug' => 'singer' ),
)
);
}
add_action( 'init', 'taxonomies_init' );
Register the shortcode:
function showtax_func( $atts ) {
if (is_single()) {
$a = shortcode_atts( array(
'tax' => '',
), $atts );
$termname = get_the_terms(get_the_ID(),$a['tax'])[0]->name;
return $termname;
}
}
add_shortcode( 'show_tax', 'showtax_func' );
Use the shortcode like this: [show_tax tax="singer"]
You can add more taxonomies by expanding the first function by duplicating the register_taxonomy() function. And get any taxonomy with the shortcode by just changing the value of the taxonomy name.

wp, shortcode content not visible in homepage, but visible in post

So I created this simple shortcode, which accepts a few params and it works as expected in the post page. I add a new post, implement the shortcode code and it all works great. But when I see the post in the homepage, it only shows the title not the content. Is there any wp code shortcode that I should implement in my shortcode in order to be able to see the content that the shortcode outputs, from the homepage/search results too?
function curr_func( $atts ) {
$a = shortcode_atts( array(
'am' => '',
'c1' => '',
'c2' => '',
), $atts );
$output = "The text I output";
return $output;
}
add_shortcode( 'fx', 'curr_func' );
This is the shortcode and I use it like
fx[ ...parameters ];
I have added this as a plugin. IS there any easy fix for this?

Change custom post type slug from Settings > Permalinks page

add_action( 'init', 'register_my_types' );
function register_my_types() {
register_post_type( 'movies',
array(
'labels' => array(
'name' => __( 'Movies' ),
'singular_name' => __( 'Movie' )
),
'public' => true,
'rewrite' => array(
'slug' => 'films'
),
)
);
}
I can use the following to change the slug from my plugin settings page (on save to get 'filme' from a field):
add_filter( 'register_post_type_args', 'movies_register_post_type_args', 10, 2 );
function movies_register_post_type_args( $args, $post_type ) {
if ( 'movies' === $post_type ) {
$args['rewrite']['slug'] = 'filme';
}
return $args;
}
But, I want to be able to modify the "films" slug from Settings > Permalinks page.
How do I add a custom post type slug to Settings > Permalinks page?
Update:
In the end I created a form field in the plugin settings page and I updated the filter like this:
function register_post_type_args( $args, $post_type ) {
if ($this->plugin_name === $post_type ) {
$slug=get_option( $this->plugin_name.'_slug' );
if($args['rewrite']['slug']!=$slug){
$args['rewrite']['slug'] = $slug;
}
}
return $args;
}
But I'm still looking for a way to change the slug from Settings / Permalinks.
You can use plugins like this:
Toolset Types
Custom Post Type UI
You should use WordPress Settings API:
Add a setting field for your slug, attached to the permalinks page with add_settings_field()
Write the callback function to display the <input> fied in the page
Write the function that record the value in the database after the form submission with update_option()
All you have to do then is modify your register_post_type() function. The get_option() function will return the value that has to be affected to slug (don't forget to test its existence).

Wordpress Profile File / Page

I would like to create a file in the Wordpress theme, where i will add my own code, edit profile, show profile information, and perhaps an ability to insert posts / meta data programmatically.
So it needs to be www.mysite.com/profile.php or www.mysite.com/profile/
I do not want to use Buddy Press or any other plugin.
I know how the template system works, i do not want a page template.
It will probably be a class, later on, i do not want to change .htaccess file, and if i must i would appreciated filter function how to do this from functions.php
Basically just a simple .php file i can link to, located in theme root.
include('../../../wp-load.php');
and write any code i would like to.
Any creative solution that is not too "hacky" would be appreciated.
Spent around 2 days googling bashing my head on this, before i decided to ask question.
Thank you very much.
Ok, I managed to do this, took me 2 days to figure it out. Here is how I managed to do it:
Make a plugin folder.
In that plugin folder make 1x php file. so index.php
Ok so first thing we need to register plugin I did it like this, in your index.php paste
this code.
function activate_profile_plugin() {
add_option( 'Activated_Plugin', 'Plugin-Slug' );
/* activation code here */
}
register_activation_hook( __FILE__, 'activate_profile_plugin' );
Then we need a function when you register a plugin only once register profile pages.
function create_profile_page( $title, $slug, $post_type, $shortcode, $template = null ) {
//Check if the page with this name exists.
if(!get_page_by_title($title)) {
// if not :
$page_id = -1;
$page_id = wp_insert_post(
array(
'comment_status' => 'open',
'ping_status' => 'open',
'post_content' => $shortcode,
'post_author' => 1, // Administrator is creating the page
'post_title' => $title,
'post_name' => strtolower( $slug ),
'post_status' => 'publish',
'post_type' => strtolower( $post_type )
)
);
// If a template is specified in the function arguments, let's apply it
if( null != $template ) {
update_post_meta( get_the_ID(), '_wp_page_template', $template );
} // end if
return $page_id;
}
}
Ok so we created function which programatically register pages. It has 5 paramethers.
is Title
Slug
Post type
Shortcode.
Template
For the shortcode template you need to make a shortcode with the complete page output
and add it as a parameter to this function, so for registration page it will be a shortcode with the registration forms etc.
For example :
function registration_shortcode(){
echo 'Wellcome to Registration page';
}
add_shortcode('registration_output', 'registration_shortcode');
Next thing we need to call it once only when plugin loads.
so we do this :
function load_plugin() {
if ( is_admin() && get_option( 'Activated_Plugin' ) == 'Plugin-Slug' ) {
delete_option( 'Activated_Plugin' );
/* do stuff once right after activation */
// example: add_action( 'init', 'my_init_function' );
create_profile_page('Registration', 'registration', 'page', '[registration_output]');
create_profile_page('Profile', 'profile', 'page', '[profile_shortcode]');
create_profile_page('Profil Edit', 'profile-edit', 'page', '[edit_shortcode]');
}
}
add_action( 'admin_init', 'load_plugin' );
Ok so this will execute only once when plugin loads and it will create 3 Pages, which are Profile, Registration and Profile Edit.
And that's it, you have your front-end user profile blank pages, and you can write page output in shortcodes ,create more pages, put any forms or elements you like and create decent profile (which doesn't have any stuff you don't need in it like plugins. )
Hope this helps, it was painful for me to figure this out. Cheers!

Resources