Salutare !
Am tot cautat, dar nu am gasit nimic.
Are cineva idee cum as putea dezactiva dropdown-ul ‘Template’ daca plugin-ul x nu este instalat?
Multumesc
Salutare !
Am tot cautat, dar nu am gasit nimic.
Are cineva idee cum as putea dezactiva dropdown-ul ‘Template’ daca plugin-ul x nu este instalat?
Multumesc
Fiecare metabox din editor este un „feature” pentru acel post type. Alte features mai sunt: titlu, editorul, thumbnail etc.
Acel dropdown face parte din page-attributes
și îl poți șterge așa:
add_action( 'init', function(){
if( is_plugin_active('advanced-custom-fields-pro/acf.php') ){
return;
}
// Post type ----------------VVV
// Feature-ul pe care îl vrei dezactivat -----VVV
remove_post_type_support( 'page', 'page-attributes' );
} );
Problema bonus este că în page-attributes
intră două lucruri:
Cât de mult te afectează… tu știi. Dar probabil nu foarte mult
is_plugin_active
Este posibil ca unele plugin-uri să fie în mai multe variante. ACF, de exemplu, poate fi instalat ori în wp-content/plugins/advanced-custom-fields-pro
ori în wp-content/plugins/advanced-custom-fields
ori în wp-content/themes/my-theme/acf
etc.
Poți să ai un plugin activ fără să-i știi direct path-ul. Poți verifica dacă este activat și altfel: cauți o funcție/clasă/constantă definite în plugin și le verifici pe alea. E.g.:
if( function_exists('acf') ) {}
Multumesc frumos
Problema este ca pagina isi pastreaza template-ul in cazul in care plugin-ul este dezinstalat intre timp. Nu ar fi fost normal sa reseteze template-ul default?
Eh, presupun că vrei să eviți accesarea paginii când plugin-ul este dezactivat (probabil în acel template folosești ceva funcții din plugin). Dacă asta e situația, poți lăsa în page acel dropdown și doar să încarci template-ul default.
E.g. în my-template.php
:
if( !function_exists('acf') ) {
require_once 'page.php';
return;
}
// restul template-ului
Va fi doar mai confuz pentru admin
Ma gandeam la varianta asta, sa fac require de page.php in template-uri, dar am crezut ca poate este vreo varianta sa seteze template-ul default in momentul in care dezactivez dropdown-ul de Template.
Multumesc frumos pentru ajutor
Template-ul este setat în post_meta
. Poți face ce vrei tu dar doar dacă se dezactivează plugin-ul din wp-admin (sau wp-cli) cu un WP_Query
.
Mi se pare o bătaie de cap prea mare
Multumesc pentru raspunsuri
Am procedat in felul urmator: in functions.php am adaugat urmatoarea functie:
function page_templates( $templates ) {
if ( ! class_exists( 'ACF' ) ) {
return;
}
return $templates;
}
add_filter( 'theme_page_templates', 'page_templates' );
pentru a ascunde dropdown-ul Template in momentul in care ACF nu este activat (sa nu dea impresia utilizatorului ca poate schimba template-ul).
Iar in template am adaugat urmatoarele linii:
Multumiri